使用jQuery,如何将select的选定值存储到数组中?

时间:2009-02-01 18:57:35

标签: javascript jquery

感谢您阅读本文。

我原本以为它就像在select .val()上使用.split函数一样简单,但是我得到了一个js错误。这是我正在使用的代码。我将使用.each()循环选择的项目...但是想了解我做错了什么......

如果我用文字设置选项...分割工作(注释代码)

由于

<html><head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<script type="text/JavaScript">
$(function(){
    $("#multOpts").bind("click", function() {
    //  var opts = "OPT1,OPT2,OPT3" ;
        var opts = $("#select1").val() ;
        $("#text1").val(opts);
    });
    $("#oneOpt").bind("click", function() {
        //  var opts = "OPT1,OPT2,OPT3" ;
        var opts = $("#select1").val() ;
        var optsArray = opts.split(",") ;
        $("#text2").val("1st opt: " + optsArray[0]);
    });
}); // End eventlistener
</script>
</head><body>
<select id="select1" multiple size="5">
<option value="OPT1">Option 1</option>
<option value="OPT2">Option 2</option>
<option value="OPT3">Option 3</option>
<option value="OPT4">Option 4</option>
<option value="OPT5">Option 5</option>
</select>
<div>
<input id="multOpts" type="button" value="Show Options"/>
<input id="text1" type="text"/>
</div>
<input id="oneOpt" type="button" value="One Option"/>
<input id="text2"  type="text"/>
</body></html>

2 个答案:

答案 0 :(得分:6)

当选择了多个选项时,val()函数会返回已经是数组,不需要进行拆分。

    $("#oneOpt").bind("click", function() {
            var opts = $("#select1").val();
            $("#text2").val("1st opt: " + opts[0]);
    });

答案 1 :(得分:1)

由于jQuery 1.2,.val()返回值数组,因此返回多个select。

var opts = $("#select1").val() || [];
$("#text2").val("values is: " +opts.join(", "));