我正在爲客戶端的應用程序工作。將需要特殊的驗證編碼,所以我不能像在其他幾個應用程序中那樣使用插件。驗證文本的下拉字段時,我有這個代碼工作,但是當我添加代碼來驗證複選框時,它破裂了。我在這個jQuery代碼中做錯了什麼? 我的jsfiddle:http://jsfiddle.net/justmelat/7N7bw/jquery - 爲什麼沒有:複選框:選中驗證不工作
完整的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;
});
});
現在我得到這個錯誤[遺漏的類型錯誤:對象[對象的對象] [對象對象]沒有方法'each'],但我沒有使用.each因爲is()應該檢查是否有任何框被選中。 – user1176783
@ user1176783閱讀我的答案以擺脫錯誤。 – VisioN
我想趕上所需的領域,但沒有填寫,所以在這種情況下,它應該不是檢查 – user1176783