jquery 验证不适用于显示 none 尽管我在忽略中给出了 class 名称
jquery validation not working for display none though i gave class name in the ignore
- 目前正在处理很棒的 jQuery 验证表单
两个单选按钮,两个下拉按钮和一个按钮最初
用户单击安全和下一步按钮错误消息显示你有
缺少一个字段,错误 class 适用于特定
下拉
- 如果用户 select 第二个单选按钮 Post 仍然毕业,错误消息将显示您缺少一个字段,因为我没有 selected 任何一个中的值下拉。如果我 select 编辑了下拉菜单中 PG 部分的值,错误消息应该也会出现在 UG 中。
这是我当前的 jquery 代码,我尝试在忽略 属性
中使用 class 名称
$(".basicForm").validate({
//ignore: "input[type='select']:hidden",
ignore: "slt_mjrpg",
onkeyup: false,
showErrors: function (errorMap, errorList) {
var errors = this.numberOfInvalids();
if (errors) {
var message = errors === 0 ? 'You missed 1 field. It has been highlighted' : 'You have missed ' + errors + ' fields. Please fill the highlited field before submit.';
$("#error_message").html(message);
$(".error_msge").show();
} else {
$(".error_msge").hide();
}
this.defaultShowErrors();
},
// errorClass: "errRed",
errorPlacement: function () {
return false;
},
highlight: function (element) {
if ($(element).is(":hidden")) {
} else {
$(element).addClass('errRed');
$('#imageUploadForm').addClass('errRed');
if($(element)[0].type=="file"){
$("#upload_error").text('Please upload only jpeg').css("color","red"); }
}
$(element).prevAll('label').find('span.required-star').addClass('text-error-red').removeClass('text-error-black');
},
unhighlight: function (element) {
if ($(element).is(':radio')) {
} else {
$(element).removeClass('errRed');
//$('#imageUploadForm').closest('.choose_file').removeClass('errRed');
}
$(element).prevAll('label').find('span.required-star').addClass('text-error-black').removeClass('text-error-red');
},
rules: {
/*1*/sel_sem:"required",
/*2*/txt_Fname: "required",
/*3*/txt_Lname: "required",
/*5*/txt_Mfname: "required",
/*6*/txt_Mlname: "required",
/*7*/txt_dob: {
required: true,
date: true
},
/*9*/sel_ms:"required",
/*10*/sel_rg:"required",
/*11*/txt_Pptnum: "required",
/*12*/country:"required",
/*13*/txt_Emirat:"required",
/*14*/txt_Pptnum: "required",
/*15*/ipt_nation:"required",
/*16*/txt_Pi:"required",
/*17*/txt_Idt:"required",
/*18*/txt_Epdt:"required",
/*22*/ipt_city:"required",
/*23*/txt_Emd: {
required: true,
email: true
},
/*24*/sel_phntype:"required",
/*25*/txt_CC:{
required: true,
number:true,
maxlength:3
},
/*26*/txt_Pno:{
required: true,
number:true
},
/*27*/slt_mjr:"required",
/*28*/slt_mjrpg:"required",//this validation will display only when pg radio button selected
/*29*/slt_evt:"required"
},
});
提前致谢
您似乎对如何使用 ignore
感到困惑。 ignore
选项告诉插件 "ignore" 验证元素。换句话说,如果你将它设置为 input[type='text']:hidden
,那么所有同样被隐藏的 type='text'
元素将被忽略。
但是,你把你的设置成type='select'
就没有了
如果要忽略隐藏的 select
元素,请将其设置为 select:hidden
ignore: "select:hidden"
编辑:
查看 jsFiddle 后...
您不需要使用 ignore
选项,因为 any/all 隐藏字段默认已被忽略。
您在第二个 select
元素的第一个 option
上有一个 value="0"
。为了使 required
验证有效,必须将此 设置为 value=""
。
- 目前正在处理很棒的 jQuery 验证表单 两个单选按钮,两个下拉按钮和一个按钮最初 用户单击安全和下一步按钮错误消息显示你有 缺少一个字段,错误 class 适用于特定 下拉
- 如果用户 select 第二个单选按钮 Post 仍然毕业,错误消息将显示您缺少一个字段,因为我没有 selected 任何一个中的值下拉。如果我 select 编辑了下拉菜单中 PG 部分的值,错误消息应该也会出现在 UG 中。
这是我当前的 jquery 代码,我尝试在忽略 属性
中使用 class 名称 $(".basicForm").validate({
//ignore: "input[type='select']:hidden",
ignore: "slt_mjrpg",
onkeyup: false,
showErrors: function (errorMap, errorList) {
var errors = this.numberOfInvalids();
if (errors) {
var message = errors === 0 ? 'You missed 1 field. It has been highlighted' : 'You have missed ' + errors + ' fields. Please fill the highlited field before submit.';
$("#error_message").html(message);
$(".error_msge").show();
} else {
$(".error_msge").hide();
}
this.defaultShowErrors();
},
// errorClass: "errRed",
errorPlacement: function () {
return false;
},
highlight: function (element) {
if ($(element).is(":hidden")) {
} else {
$(element).addClass('errRed');
$('#imageUploadForm').addClass('errRed');
if($(element)[0].type=="file"){
$("#upload_error").text('Please upload only jpeg').css("color","red"); }
}
$(element).prevAll('label').find('span.required-star').addClass('text-error-red').removeClass('text-error-black');
},
unhighlight: function (element) {
if ($(element).is(':radio')) {
} else {
$(element).removeClass('errRed');
//$('#imageUploadForm').closest('.choose_file').removeClass('errRed');
}
$(element).prevAll('label').find('span.required-star').addClass('text-error-black').removeClass('text-error-red');
},
rules: {
/*1*/sel_sem:"required",
/*2*/txt_Fname: "required",
/*3*/txt_Lname: "required",
/*5*/txt_Mfname: "required",
/*6*/txt_Mlname: "required",
/*7*/txt_dob: {
required: true,
date: true
},
/*9*/sel_ms:"required",
/*10*/sel_rg:"required",
/*11*/txt_Pptnum: "required",
/*12*/country:"required",
/*13*/txt_Emirat:"required",
/*14*/txt_Pptnum: "required",
/*15*/ipt_nation:"required",
/*16*/txt_Pi:"required",
/*17*/txt_Idt:"required",
/*18*/txt_Epdt:"required",
/*22*/ipt_city:"required",
/*23*/txt_Emd: {
required: true,
email: true
},
/*24*/sel_phntype:"required",
/*25*/txt_CC:{
required: true,
number:true,
maxlength:3
},
/*26*/txt_Pno:{
required: true,
number:true
},
/*27*/slt_mjr:"required",
/*28*/slt_mjrpg:"required",//this validation will display only when pg radio button selected
/*29*/slt_evt:"required"
},
});
提前致谢
您似乎对如何使用 ignore
感到困惑。 ignore
选项告诉插件 "ignore" 验证元素。换句话说,如果你将它设置为 input[type='text']:hidden
,那么所有同样被隐藏的 type='text'
元素将被忽略。
但是,你把你的设置成type='select'
就没有了
如果要忽略隐藏的 select
元素,请将其设置为 select:hidden
ignore: "select:hidden"
编辑:
查看 jsFiddle 后...
您不需要使用
ignore
选项,因为 any/all 隐藏字段默认已被忽略。您在第二个
select
元素的第一个option
上有一个value="0"
。为了使required
验证有效,必须将此 设置为value=""
。