【问题标题】:Pass two value from select box once its get selected一旦被选中,就从选择框中传递两个值
【发布时间】:2013-09-23 19:07:14
【问题描述】:

我需要在更改选择框时获取两个相对值。我有一个多选框,其中包含一些用于呈现用户资源的选项。一些选项代表父资源。所以我需要获取选定的值以及它是否是父级。

<select class="filtered remaining" onchange="check_options(this)" id="multi-select-left" multiple="multiple" style="height: 15em;">
    <option parent="0" value="1">User</option>
    <option parent="1" value="2">User-Login</option>
    <option parent="1" value="8">User-Logout</option>
    <option parent="1" value="11">User-Register</option>
    <option parent="0" value="3">Backend</option>
    <option parent="0" value="4">Settings</option>
    <option parent="4" value="5">Settings-Edit</option>
    <option parent="0" value="6">Category</option>
    <option parent="6" value="7">Category-add</option>
    <option parent="0" value="12">logger</option>
    <option parent="0" value="13">brands</option>
    <option parent="0" value="14">User-Role</option>
</select>

在选择一个选项时无论如何都可以获得parent="0" 值。我已经尝试了很多东西,没有任何效果。 :(

这是我的 check_options 方法

function check_options(val)
{
var test = $(val).children("option").filter("parent").text();
alert(test);

}

【问题讨论】:

标签: javascript jquery html


【解决方案1】:

试试这个代码:
JS 小提琴:http://jsfiddle.net/reigel/frFa9/

 $('#multi-select-left').change( function() {
    var $t = $(this);    
    var tVal = $t.val();    
    var tParent = $t.find('option:selected').attr('parent');

    alert( 'tVal: ' + tVal);
    alert( 'tParent : ' + tParent );
    });

【讨论】:

  • 谢谢@Shaheer,你几乎摆脱了我的噩梦。
【解决方案2】:

你可以选择吗

<option value="0_1">User</option>

当你需要时爆炸它

【讨论】:

  • 谢谢@Shakti Patel,我正在考虑这个选项,但首先我尝试以更简单的方式进行操作。如果无论如何都没有得到这个父值,我当然必须继续这个。
【解决方案3】:
<script>
function check_options()
{
    var x=document.getElementById("multi-select-left");
    for (var i = 0; i < x.options.length; i++) 
    {
        if(x.options[i].selected ==true)
        {
            // alert(x.options[i].value);
             alert(x.options[i].getAttribute('parent'));
        }
    }
}
</script>
<select class="filtered remaining" onchange="check_options();" id="multi-select-left" multiple="multiple" style="height: 15em;">
    <option parent="0" value="1">User</option>
    <option parent="1" value="2">User-Login</option>
    <option parent="1" value="8">User-Logout</option>
    <option parent="1" value="11">User-Register</option>
    <option parent="0" value="3">Backend</option>
    <option parent="0" value="4">Settings</option>
    <option parent="4" value="5">Settings-Edit</option>
    <option parent="0" value="6">Category</option>
    <option parent="6" value="7">Category-add</option>
    <option parent="0" value="12">logger</option>
    <option parent="0" value="13">brands</option>
    <option parent="0" value="14">User-Role</option>
</select>

【讨论】:

    【解决方案4】:

    您可以通过此脚本获取所选选项的父值:

    function check_options(val)
    {
    var test = $(val).find(":selected").attr("parent").value;
    alert(test);
    }
    

    【讨论】:

    • 最后一个.value无效,attr()已经返回值
    猜你喜欢
    • 2013-07-24
    • 2023-02-15
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    • 1970-01-01
    • 1970-01-01
    • 2016-03-04
    • 2019-11-17
    相关资源
    最近更新 更多