【发布时间】:2016-06-16 12:42:02
【问题描述】:
我有一个表单,我正在使用 jQuery Validate 来验证表单。我遇到了一个问题。该表单被验证两次。我的变量 'isValid' 在之后被记录到控制台两次
触发验证的按钮是类型按钮
<button type="button" name="submit" id="submit" vclass="btn btn-default">Submit</button>
以下是具有要向用户显示的规则和消息的 JavaScript。它还包括按钮的点击事件。
$(function () {
$("#createUser").validate({
rules: {
FirstName: "required",
email: {
required: true,
minlength : 2
},
zipCode: {
required: true,
maxlength : 5
},
Telephone: {
required: function (element) {
return $('#options option:selected').val() != "1";
},
maxlength : 12
},
options: {
required: true,
notEqual: "1"
}
},
messages: {
FirstName: "Please specify your first name",
email: {
required: "This email field is required.",
minlength : "email had to have a min length of 2."
},
zipCode: {
required: "Zip code is a required field.",
maxlength : "zip code cannot be more than 5 characters."
},
Telephone: {
required : "Telephone is a required field.",
maxlength : "Phone number has to have a max length of 12 characters."
},
options: {
required: "Option is a required field",
notEqual: "Select a different option"
}
}
});
jQuery.validator.addMethod("notEqual", function (value, element, param) {
return this.optional(element) || value != param;
}, "Please specify a different (non-default) value");
$('#submit').on('click', function () {
isValid = $('#createUser').valid();
console.log(isValid);
});
});
我发现的大多数与两次验证表单相关的问题都与使用类型提交代替按钮有关。另外,我没有在我的 JavaScript 文件中的任何地方调用提交。我在这里错过了什么?
【问题讨论】:
-
我的猜测是该动作被绑定了两次。在小提琴中重现它,我会给你更多
-
如果规则在单独的js中,请确保脚本没有被引用两次
-
@REDEVI_ 这就是问题所在。我将文件夹包含在我的包中。然后,我添加了对 JavaScript 文件的引用,忘记了该文件夹也包含在我的包中。您可以将评论更改为答案,我会将其标记为已解决。
-
好的,我已经这样做了..谢谢..
标签: javascript jquery jquery-validate