我需要验证多个选项以查看是否选择了一个选项...如果没有选择选项我想要一个jquery弹出错误提醒,说明选择其中一个选项,但我只能弄清楚如何使用单选...不是多个如下:
<select name="sickFull[0]" class="select2 sickfull">
<option></option>
<option value="1">Full day</option>
<option value="2">Half day (AM)</option>
<option value="3">Half day (PM)</option>
</select>
<select name="sickFull[1]" class="select2 sickfull">
<option></option>
<option value="1">Full day</option>
<option value="2">Half day (AM)</option>
<option value="3">Half day (PM)</option>
</select>
我的jquery:
$(document).on('submit', 'form', function(e) {
var sickfull = $(".sickfull").val();
var errormessage = "";
if (sickfull == "")
errormessage = "Please select an option";
if (errormessage != "") {
$.Zebra_Dialog(errormessage, { 'type': 'warning', 'title': 'Error', 'width': '500' });
return false;
}
});
答案 0 :(得分:1)
您应该对所有sickfull
课程
您还应该对sickfull
执行不同的检查,以检查是否选择了某些内容。
$(document).on('submit', 'form', function(e) {
$('.sickfull').each(function(){
var sickfull = $(this).val();
var errormessage = "";
if (!sickfull)
errormessage = "Please select an option";
if (errormessage != "") {
$.Zebra_Dialog(errormessage, { 'type': 'warning', 'title': 'Error', 'width': '500' });
return false;
}
});
});
答案 1 :(得分:0)
我做了一些不同的事情,允许任意数量的select
元素使用相同的类 - http://jsfiddle.net/jayblanchard/X6GT4/
$(document).on('submit', 'form', function (e) {
e.preventDefault();
var sickfullCheckSum = 0;
var sickfullElements = $(this).find('.sickfull').length; // how many elements could be selected?
$('.sickfull').each(function() {
( '' == $(this).val() ? sickfullCheckSum++ : sickfullCheckSum-- ); // change the checksum as appropriate
});
(sickfullCheckSum == sickfullElements ? console.log('please select something') : console.log('good') ); // test the checksum against the elements
});
当然你可以为函数添加自己的错误处理,但这应该给你一个开始。这里的关键是sickfullCheckSum
不等于sickfullElements
,表示从类.sickfull
的任意数量的选项中选择了至少一个选项。
答案 2 :(得分:-1)
您无法使用.val()
获取多个字段的值。您的选择器返回两个元素,因此您需要检查每个元素以获取其对应的值。
var sickfull = $(".sickfull");
sickfull.each(function () {
if ($(this).val() == "") {
// set your error message
return false; // stop looping
}
}
if (errormessage != "") {
// ...
}