mrb*_*rks 6 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.com/";
$.ajax(url,
{
statusCode: {
200: function() {
//alert('name exists already');
return options.allrules.validate2fields.alertText;
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
表格字段:
<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>
Run Code Online (Sandbox Code Playgroud)
问题是这$.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;
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
问题是:你的回报只是为了而[second function]不是为了validateDomain。
查看jquery-validation-engine的文档,我看不到一种做你想做的事情的方法。