0

我的视图中有两个下拉列表,我正在尝试将其中一个放入数组中。第一个下拉列表名为“listOfDays”,第二个下拉列表名为“instructorString”。由于某种原因,代码从两个列表中检索文本并将它们放入数组中。如何为我的 JQuery 数组指定正确的列表?这是脚本。谢谢你的帮助。

        $(document).ready(function () {
            var trial = $('#instructorString').val();

            $('#saveBtn').click(function () {
                var checkList = new Array();
                $("select option:selected").each(function () {
                    if ($(this).is(':selected')) {
                        checkList.push($(this).val());

                    }
                    else
                        checkList.push('unchecked');
                });
                alert(checkList);
            });




        });
4

3 回答 3

1

指定您需要的选择的 ID ..并且您不需要is(:selected)部分,因为您的选择器 option:selected选择了所有仅选择的选项..

$('#saveBtn').click(function () {
            var checkList = new Array();
            $("#corectSelectID  option:selected").each(function () {
               // if ($(this).is(':selected')) { <---//you don't need this as the selector selects only selected option
                    checkList.push($(this).val());

            });
            console.log(checkList);
        });

如果您需要数组中未选中的值,则选择选择器中的所有选项

  $('#saveBtn').click(function () {
            var checkList = new Array();
            $("#corectSelectID  option").each(function () {
               if ($(this).is(':selected')) 
                    checkList.push($(this).val());
               else
                    checkList.push('unchecked');

            });
            console.log(checkList);
        });
于 2013-04-01T08:05:54.750 回答
1

您只选择选定的选项,因此检查没有意义is(':selected'),因为它们都将被选中。要选择所有选项并根据状态推送不同的值:

$(document).ready(function () {
     var trial = $('#instructorString').val();
     $('#saveBtn').on('click', function () {
         var checkList = [];
         $("select[name='listOfDays'] option").each(function () {
             if ($(this).is(':selected')) {
                 checkList.push( this.value );
             } else { // you where missing brackets
                 checkList.push('unchecked');
             }
         });
         //alert(checkList); You can't alert an array
         console.log( checkList )
     });
});

要选择一个select基于名称,你会做$("select[name='listOfDays'] option")

于 2013-04-01T08:05:59.063 回答
0

代替$("select option:selected")

尝试 $('select.Class_of_Correctlist ')

$("select option:selected")将选择所有被选中的下拉选项。

$("select.correctList option").each(function () { 
              //correctlist is the class for the correct drop down
             if ($(this).is(':selected')) {
                 checkList.push( this.value );
             } else { //
                 checkList.push('unchecked');
             }
         });
于 2013-04-01T08:08:32.660 回答