我正在为客户开发一个应用程序。需要特殊的验证编码,所以我不能像在其他几个应用程序中那样使用插件。我在验证文本和下拉字段时让这段代码工作,但是当我添加代码来验证复选框时它就坏了。我在这个 jquery 代码中做错了什么?我的 jsFiddle:http: //jsfiddle.net/justmelat/7N7bw/
完整的jquery代码:>>
$(document).ready(function(){
$("#btnCatchReqFlds").on('click', function(){
$("#holdErrMsg").empty();
var reqButEmpty = $('fieldset:visible').find('input[type="text"][class*="-required"],textarea[class*="-required"],select[class*="-required"]').filter(function()
{
return $.trim($(this).val()) === "";
});
var chkbx_reqButEmpty = $('fieldset:visible').find('input[type="checkbox"][class*="-required"]').filter(function()
{
return !$(this).is(':checked')
});
var holdAll = reqButEmpty + chkbx_reqButEmpty;
if(holdAll.length > 0)
{
holdAll.each(function() {
$('#holdErrMsg').append("Please fill in the " + this.name + "<br />");
});
}
return !holdAll.length;
});
});
上面一直在工作,直到我添加了这个复选框验证:>>
var chkbx_reqButEmpty = $('fieldset:visible').find('input[type="checkbox"][class*="-required"]').filter(function()
{
return !$(this).is(':checked')
});
var holdAll = reqButEmpty + chkbx_reqButEmpty;
这是带有新建议的 jquery - 但不起作用>>
$(document).ready(function(){
$("#btnCatchReqFlds").on('click', function(){
$("#holdErrMsg").empty();
var reqButEmpty = $('fieldset:visible').find('input[type="text"][class*="-required"],textarea[class*="-required"],select[class*="-required"]').filter(function()
{
return $.trim($(this).val()) === "";
});
//var chkbx_reqButEmpty = $('fieldset:visible').find('input[type="checkbox"][class*="-required"]').filter(function()
var chkbx_reqButEmpty = $('fieldset:visible').find('input:checked[class*="-required"]').filter(function()
{
console.log(this);
//return !$(this).is(':checked')
//return !this.checked;
return $(this).is(!':checked');
});
//var holdAll = reqButEmpty + chkbx_reqButEmpty;
//var holdAll = reqButEmpty.concat(chkbx_reqButEmpty).length;
var holdAll = $.extend(reqButEmpty,chkbx_reqButEmpty);
if(holdAll.length > 0)
{
holdAll.each(function() {
$('#holdErrMsg').append("Please fill in the " + this.name + "<br />");
});
}
return !holdAll.length;
});
});