我的视图中有两个下拉列表,我试图将其中一个放入数组中。第一个下拉列表名为'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);
});
});
答案 0 :(得分: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);
});
答案 1 :(得分: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")
答案 2 :(得分: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');
}
});