Javascript 原型验证工作不正常

Javascript 原型验证工作不正常,javascript,forms,validation,prototypejs,Javascript,Forms,Validation,Prototypejs,我使用Prototype.js验证表单。对于其中一个字段,我有一个原型脚本ajax请求一个文件。该文件是一个简单的PHP文件,如果值正常,则返回“1”,如果值不正常,则返回“0”。我有下面的脚本,它应该工作得很好。当字段未通过验证时,原型验证应显示验证错误消息,并且在字段通过验证后不显示/删除该消息。但在这种情况下,即使ajax文件返回“1”,验证仍将显示错误消息。任何能帮忙的人都将不胜感激 ['validate-number3', numessage3, function(v) { new A

我使用Prototype.js验证表单。对于其中一个字段,我有一个原型脚本ajax请求一个文件。该文件是一个简单的PHP文件,如果值正常,则返回“1”,如果值不正常,则返回“0”。我有下面的脚本,它应该工作得很好。当字段未通过验证时,原型验证应显示验证错误消息,并且在字段通过验证后不显示/删除该消息。但在这种情况下,即使ajax文件返回“1”,验证仍将显示错误消息。任何能帮忙的人都将不胜感激

['validate-number3', numessage3, function(v) {
new Ajax.Request('test.php?nr='+v, {
  method:'get',
  onSuccess: function(transport) {
    var response = transport.responseText;
    if(response == '1'){return true;}else{return false};
  }
});
}],

来自
Ajax.Request
的返回值是
Ajax.Request
对象,并在设置请求时立即返回-请求完成后调用
onsuccess
回调-因此检查Ajax.Request的结果对您想要完成的任务没有帮助

这是一个异步调用,这意味着它将启动调用,然后在脚本处理时将控制权返回给脚本,然后在完成时运行回调

这样试试看

new Ajax.Request('test.php?nr='+v, {
  method:'get',
  onSuccess: handleResponse
});

function handleResponse( transport ){
    var response = transport.responseText;
    if(response == '1'){
       //everything is OK 
    }else{
       //value is not OK 
    };
}

我能解决我的问题! 多亏了这个网页:没问题。这就是我的结局:

var ok = false;
new Ajax.Request('test.php?nr='+v, {
  method:'get',
  asynchronous: false,
  onSuccess: function(transport) {
    var response = transport.responseText;
    if(response == '1'){ok = true;}else{ok = false;};
  },
  onComplete: function() {
            if ($('advice-validate-number-pay_bank_no')) {
                $('advice-validate-number-pay_bank_no').remove();
            }
  }
});
return ok;
“不起作用”并不能很好地解释发生了什么…@nico对此表示抱歉——让我澄清一下:当字段未通过验证时,原型验证将显示验证错误消息。但在这种情况下,即使ajax文件返回“1”,验证仍将显示错误消息。可能的重复-您不能,它是异步的。