我有一个包含4个下拉列表的表单。所有下拉列表中的默认选择选项是“请选择”。我想使用Jquery确保所有下拉列表在提交页面之前都有值,但我的代码仅适用于第一个。有没有人能够一次检查所有下拉菜单?
function doconfirm() {
if ($('select').val() == '') {
alert("Please Select All Fields");
}
}
我确定我错过了一些东西,但我无法弄明白。 感谢
答案 0 :(得分:8)
function doconfirm() {
if ($('select').each(function() {
if($(this).val() == '') {
alert("Please Select All Fields");
return(false);
}
});
}
答案 1 :(得分:4)
@mgroves方法稍有不同,此显式测试至少一个选定的选项,并对第一个没有选项的选项发出警报。如果这种方法有任何优势,那么它的可读性更好(特别是因为.val()的使用对于这个目的来说有点模棱两可):
function doconfirm() {
if($('select').each(function() {
if(!$(this).find('option:selected').length) {
alert("Please Select All Fields");
return(false);
}
});
}
答案 2 :(得分:1)
对此不同的看法为什么不使用
function doConfirm() {
var toReturn = true;
if ( $('select').filter( function(){
return $(this).val() === '';
}).length ) {
toReturn = false;
//notify user
}
return toReturn;
}
答案 3 :(得分:0)
$('select').each(function(s){if(!this.val())...});