私はクライアントのアプリケーションに取り組んでいます。特別な検証コーディングが必要になるため、他のいくつかのアプリのようにプラグインを使用することはできません。テキストをドロップダウンフィールドで検証するときにこのコードが機能していましたが、チェックボックスを検証するコードを追加すると壊れました。この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;
});
});