我有一个带有电子邮件输入的简单表格:
<input id="emailaddress" name="emailaddress" type="email" value="" />
我正在像这样使用jQueryValidation:
emailaddress: {
required: true,
email: true
},
我现在想做的是使用Mailboxlayer API验证电子邮件,然后根据分数返回错误消息。
因此,Mailboxlayer中的代码如下:
// set endpoint and your access key
var access_key = 'YOUR_ACCESS_KEY';
var email_address = 'support@apilayer.com';
// verify email address via AJAX call
$.ajax({
url: 'http://apilayer.net/api/check?access_key=' + access_key + '&email=' + email_address,
dataType: 'jsonp',
success: function(json) {
// Access and use your preferred validation result objects
console.log(json.format_valid);
console.log(json.smtp_check);
console.log(json.score);
}
});
这样可以正常工作并返回分数。
不过,将其与jQueryValidation结合使用的最佳方法是什么。
所以到目前为止我尝试过的是:
只需对电子邮件输入更改进行检查,然后在其中检查分数并尝试添加规则:
console.log(json.score);
if (eval(json.score)<0.75) {
$( "#youremail" ).rules( "add", {
required: "Something wrong"
});
}
我尝试过使用回调函数,其规则有点像此处所述:
jQuery Validate - how to run function inside "required" without executing it on load
因此,我在其中进行检查,然后如果分数<0.75,则返回true。但是,似乎它不会在页面每次加载时都运行脚本,而只是从第一次电子邮件检查中返回分数。
我应该使用哪种方法?如果从API返回的得分为<0.75,我如何显示自定义错误消息?