我有一个使用 jquery 插件编写的自定义验证器,它调用服务器上的一个 php 页面来验证使用数据库的输入。我不知道该怎么做,但这是我能想到的最好的方法,因为我不是 javscript/ajax 程序员
jQuery.validator.addMethod('checkVehicleRegistration', function(val, element) {
var x = $.ajax({
type: "POST",
async: false,
url: "ajax/validation/checkVehicleRegistration.php",
data: "vehicle_reg=" + val,
success: function(resp) {
},
error: function(e) {alert('checkVehicleRegistration failed' + e);}
});
if (x.responseText == '0') {return true;} else {return false;}
}, 'Registration already exists');
诚然,这不是世界上最好的代码,因为我不得不使 ajax 调用同步,这会破坏这一切的对象。但是,由于我不是 javascript 程序员,所以它完全可以工作,这是一个奇迹。
我的问题是验证真的很慢。jquery 似乎多次调用此验证函数。我已经尝试使用警报来找出何时调用验证函数,并且当您在相应的文本框中键入时,当您从文本框中跳出以及提交表单时,似乎多次调用验证。
如何设置此自定义验证功能,使其仅在用户按下提交时调用,而不是在他们在文本框中键入/切换时调用?此外,任何关于“设计模式”的建议都非常感谢我应该如何使用 ajax 更好地完成此服务器端验证
多谢
谢谢