Javascript jQuery验证程序addMethod始终返回false
我是jQuery验证的新手,正在尝试使用addMethod创建自定义事件。我已经编写了看起来正确但显然不正确的代码,因为如果事件是真的,那么电子邮件应该隐藏起来,没有消息 发生的情况是,如果事件为真或假,则会显示消息“请输入测试值!”他总是被解雇。我显然犯了一个巨大的错误,但似乎找不到纠正它的方法。如果有人能指出我的错误,我将不胜感激。我只发布了相关的代码。谢谢 小提琴代码: 更新:只是更新。我注意到,如果在验证后按下submit按钮,则会输入正确的消息,而不会输入错误的消息。这正是我需要的。我们将何去何从 addMethod代码Javascript jQuery验证程序addMethod始终返回false,javascript,jquery,validation,Javascript,Jquery,Validation,我是jQuery验证的新手,正在尝试使用addMethod创建自定义事件。我已经编写了看起来正确但显然不正确的代码,因为如果事件是真的,那么电子邮件应该隐藏起来,没有消息 发生的情况是,如果事件为真或假,则会显示消息“请输入测试值!”他总是被解雇。我显然犯了一个巨大的错误,但似乎找不到纠正它的方法。如果有人能指出我的错误,我将不胜感激。我只发布了相关的代码。谢谢 小提琴代码: 更新:只是更新。我注意到,如果在验证后按下submit按钮,则会输入正确的消息,而不会输入错误的消息。这正是我需要的。我
$(function() {
$.validator.addMethod( 'emailHide', function(value, element)
{
if (element.value === '')
{
return false;
}
//return true;
$('#email').hide();
$('#emaillbl').html('Email address approved');
},'Please enter a value for testing!'
);
});
验证规则代码
$(function () {
$.validator.setDefaults(
{
errorClass: 'form_error_frmreport',
errorElement: 'div'
});
$("#frmreport").validate(
{
rules:
{
email:
{
//required: true,
email: true,
emailHide: true
},
position:
{
required: true
},
feedback:
{
required: true
}
},
messages:
{
email:
{
//required: "<br />* required: You must enter a valid email address"
},
position:
{
required: "<br />* required: Please state your position"
},
feedback:
{
required: "<br />* required: Please enter as much information regarding the exact nature of the problem"
}
},
submitHandler: function() {
if ($("#frmreport").valid() === true) {
var data = $("#frmreport").serialize();
$.post('/sample/admin/frm10010.php', data, function(msg) {
var messageOutput = '';
for (var i = 0; i<msg.length; i++){
messageOutput += msg[i].box+' ';
}
$("#confirm_department").hide();
var $dialog = $('<div id="dialog"></div>')
.html('Your report was successfully submitted and a representative will respond to you shortly.<br /><br />Thank you.');
$dialog.dialog({
autoOpen: true,
modal: true,
title: 'Report submission successfull',
width: 400,
height: 200,
draggable: false,
resizable: false,
buttons: {
Close: function() {
$( this ).dialog( "close" );
}
}
});
$("#frmreport").get(0).reset();
}, 'json');
} else
{
return;
}
},
success: function() {
//validator.resetForm();
//$.html("You have entered a box");
//$("#BA_boxform").get(0).reset();
}
});
});
$(函数(){
$.validator.setDefaults(
{
errorClass:“表单错误报告”,
errorElement:'div'
});
$(“#frmreport”).validate(
{
规则:
{
电邮:
{
//要求:正确,
电子邮件:是的,
emailHide:对
},
职位:
{
必填项:true
},
反馈:
{
必填项:true
}
},
信息:
{
电邮:
{
//必需:“
*必需:您必须输入有效的电子邮件地址”
},
职位:
{
必填:“
*必填:请说明您的职位”
},
反馈:
{
必需:“
*必需:请输入尽可能多的有关问题确切性质的信息”
}
},
submitHandler:function(){
如果($(“#frmreport”).valid()==true){
var data=$(“#frmreport”).serialize();
$.post('/sample/admin/frm10010.php',数据,函数(msg){
var messageOutput='';
对于(var i=0;i,该值可能包含空格,因此您应该尝试:
if (element.value.trim() == '')
并非所有浏览器都支持,因此您应该将其放在Javascript文件的顶部
if(!String.prototype.trim) {
String.prototype.trim = function () {
return this.replace(/^\s+|\s+$/g,'');
};
}
不确定,但试试这个
将if(element.value=='')替换为**if(value=='')
尝试用==@iBlue替换====仍然是相同的错误。thankscan你发布你的完整代码,包括html或JSFIDBLUE忽略提交和php值。thanksMr.Polywhill仍然是相同的结果。thankscan你尝试这个…需要在其他条件如果(element.value==='')中添加返回true
{return false;}else{$('#email').hide();return true;}