jQuery验证引擎自定义javascript验证
我试图通过一个自定义函数使用jQuery验证引擎验证子域的可用性。验证似乎正确进行,但如果.ajax请求返回200,则不会显示alertText。我添加了jQuery验证引擎自定义javascript验证,jquery,jquery-validation-engine,Jquery,Jquery Validation Engine,我试图通过一个自定义函数使用jQuery验证引擎验证子域的可用性。验证似乎正确进行,但如果.ajax请求返回200,则不会显示alertText。我添加了Access Control Allow Origin标题,可以在我的日志中看到请求成功完成 我做错了什么 Javascript函数: function validateDomain(field, rules, i, options) { var url = "https://" + field.val() + ".example.co
Access Control Allow Origin
标题,可以在我的日志中看到请求成功完成
我做错了什么
Javascript函数:
function validateDomain(field, rules, i, options) {
var url = "https://" + field.val() + ".example.com/";
$.ajax(url,
{
statusCode: {
200: function() {
//alert('name exists already');
return options.allrules.validate2fields.alertText;
}
}
});
}
表单字段:
<label class="required" for="signup[subdomain]">Subdomain<span>*</span></label>
<span>https://</span>
<input id="signup[subdomain]" name="signup[subdomain]" class="field field validate[required,funcCall[validateDomain]]" type="text">
<span>.example.com</span>
子域*
https://
.example.com
问题在于$。ajax
是一个异步函数,不能以这种方式工作
function validateDomain(field, rules, i, options) {
var url = "https://" + field.val() + ".example.com/";
$.ajax(url,
{
statusCode: {
200: function() { // [ second function ]
return options.allrules.validate2fields.alertText;
}
}
});
}
问题是:您的返回仅针对[second function]
而不是validateDomain
查看的文档中,我看不出一种做你想做的事情的方法。你能添加一个错误处理程序,看看它是否被执行,我怀疑是一个解析错误正在发生。看起来像是你的一个副本,你已经标记了这两个,但这是两个完全不同的插件。你真正使用的是哪一个?Sparky编辑了正确的插件。我正在使用jquery验证引擎@贝基,这就是我需要的。为请求添加回调可以正常工作。