一旦选中,就从选择框中传递两个值

时间:2013-09-23 10:48:18

标签: javascript jquery html

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

<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);

}

4 个答案:

答案 0 :(得分:4)

试试这段代码:
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 );
    });

答案 1 :(得分:0)

你可以选择

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

并在需要时将其爆炸

答案 2 :(得分:0)

<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>

答案 3 :(得分:-1)

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

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