Используя jQuery, как я могу сохранить выбранные значения выбора в массиве? - PullRequest
1 голос
/ 01 февраля 2009

Спасибо, что прочитали это.

Я бы подумал, что это будет так же просто, как использовать функцию .split в select .val (), но я получаю ошибку 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 ]

6 голосов
/ 01 февраля 2009

Функция val (), когда выбрано более одной опции, возвращает вам уже массив, вам не нужно делать разбиение.

    $("#oneOpt").bind("click", function() {
            var opts = $("#select1").val();
            $("#text2").val("1st opt: " + opts[0]);
    });
1 голос
/ 01 февраля 2009

Поскольку jQuery 1.2, .val () возвращает массив значений, возвращается при множественном выборе.

var opts = $("#select1").val() || [];
$("#text2").val("values is: " +opts.join(", "));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...