【发布时间】:2013-01-18 00:55:09
【问题描述】:
我使用jQuery validation plugin 来验证我的表单,并且我还使用addmethod 函数来创建我自己的验证方法。这就是我设置 jQuery Validator 的方式:
$(document).ready(function() {
if ($("#validation_json").length > 0) {
var validationJSON = JSON.parse(decodeURIComponent($("#validation_json").val()));
$(".form-horizontal").validate({
rules: validationJSON.rules,
messages: validationJSON.messages
});
}
});
我有一个带有 id validation_json 的输入标签,并将值设置为 jQuery 验证器插件的一组规则和消息;这些规则和消息在表单构建器的帮助下输出到服务器端。唯一的问题是,每当我添加自己的验证方法时,就像这样:
jQuery.validator.addMethod("uniqueemail", function(email) {
return false; //just for testing
}, "This email is already in use");
jQuery 验证器将在提交字段之前使用此方法来检查它是否有效(除了上面设置的规则),但是如果 addMethod 之一的验证为 false,它将使用该消息上面在 validate 方法中设置的项目,而不是传递给 addMethod 的消息。有谁知道我可以让它显示实际传递给 addMethod 函数的消息的方法?谢谢!
更新:
这是一个显示问题的jsFiddle 链接。
【问题讨论】:
-
你能构建一个 jsFiddle 演示吗?
-
我在上面添加了一个 jsFiddle 演示。
-
如何使用演示?换句话说,我应该在应该触发自定义消息的电子邮件字段中输入什么?
-
如果您要输入任何有效的电子邮件,例如 test@test.com,那么它仍然会一直说“电子邮件字段是必需的”,即使它失败的测试是“uniqueemail”。
-
我明白了。我如何知道您的
.validate()规则的格式和声明是否正确?validationJSON.rules和validationJSON.messages的确切结果是什么?
标签: jquery error-handling jquery-validate