使用自定义方法进行Jqueryvalidation我无法提交表单

我正在使用自定义方法的jqueryvalidation。 不知何故,我需要点击两次才能提交表格。 如果您在提交之前生成onblur事件,则它可以正常工作。

我在以下链接中设置了一个字段并单击了按钮并进行了validation。 我设置为返回您输入的任何内容,但如果您不单击两次或生成onblur并单击,则无法提交表单。 我在这里做错了吗?

http://skoizumi.com/autocomplete/

jQuery.validator.addMethod("contractorName", function (value, element) { console.log( '1'); console.log( element); //$('#searchtext').autocomplete('close'); var result = false; var contractorName = $("#searchtext" ).val(); //validating the specified field has a valid name $.ajax({ type: "GET", url: "/autocomplete/testdata.php", dataType:"json", async: false, complete: function(){ }, success: function(msg) { console.log( msg); result = true; } }); console.log( '2'); return result; }, "Specified Contractor doesn't exist"); $("#myform").validate( { rules:{ searchtext: { contractorName: true } }, onsubmit: false, onkeyup: false }); 

最后我设法找到了解决方法。 不知何故,当我将onfocusout设置为true时,我无法发布有效数据。 通过添加自定义方法,您无需将服务器端更改为true / false,但您可以决定完整function。 http://skoizumi.com/autocomplete/index.html如果您输入“European Nightjar”,您可以通过一些错误提交表格。

AJAX是异步的,因此result您的方法始终返回false 。 使用插件的内置remote方法。 http://docs.jquery.com/Plugins/Validation/Methods/remote#options