Javascript mootools |独特的电子邮件验证

Javascript mootools |独特的电子邮件验证,javascript,xmlhttprequest,mootools,Javascript,Xmlhttprequest,Mootools,我有一个mootools脚本: Form.Validator.add('UniqueEmail', { errorMsg: 'Email is taken', test: function(element, props) { var valid = false; if (element.value.length > 0) { site.request(app, {'action':'account.email', 'email':e

我有一个mootools脚本:

Form.Validator.add('UniqueEmail', {
   errorMsg: 'Email is taken',
   test: function(element, props) {

      var valid = false;
      if (element.value.length > 0) {

         site.request(app, {'action':'account.email', 'email':element.value}, function(r){ 
           valid = parseInt(r.istaken) != 1 ? true : false;             
         },'GET');

         return valid;
      }
   }
});
/服务器返回:{“状态”:1,“istaken”:0}/但输入字段验证:失败。
哪里有问题?谢谢

您的请求回调函数(处理服务器响应的函数)是异步运行的,但验证函数立即返回“valid”(false)值


当回调函数运行时(即服务器响应后),Form.Validator.add()函数已经执行完毕,并且该字段很久以前就被标记为无效。

执行
site.request
执行以下操作:1
application/json
->通过
json.parse
因此
r
是一个对象,否则您可能总是在执行
NaN!=1=>true
或抛出
istaken
的引用。如果它是
0
/
1
返回的并且是对象,则不需要对其进行类型转换。只是
valid=!!r、 伊斯塔肯;2.使用
async:false
运行XHR,在到达响应之前阻止验证器?发布
站点的来源。请求
和配置它的
应用程序
对象(?)的值等,或者至少给出一个概述