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