如何通过JQuery / Ajaxvalidation用户名/密码?

试着让它在一段时间内起作用:

 function check_for_acc() { $("#usr_login_attp").val("ok"); jQuery.ajax({ url: "http://localhost:3000/login/validate_user/", type: 'POST', dataType: 'json', data: {'email':$('#user_email').val(), 'password':$('#user_password').val(), 'authenticity_token': jQuery('input[name="authenticity_token"]').val()}, error: function(xhr_data) { //sdfsd }, success: function(xhr_data) { $("#usr_login_attp").val(xhr_data.status); } }); } check_for_acc(); if ($("#usr_login_attp").val() == "fail") { err++; errStr += "Email or Password Was Not Recognized
"; }

ajax函数正在使用“ok”或“fail”更新$("#usr_login_attp")字段,这部分工作正常,但是当我调用check_for_acc() ,以下if语句无法每次都通过,而不管是什么$("#usr_login_attp")的实际值是?

这让我疯了,谁能看到我在这里做错了什么?

是的! 您认为success处理程序将在脚本的其余部分执行之前执行。 这几乎肯定是不正确的。

登录成功/失败的处理需要在回调中进行。 一旦调用check_for_acc() ,它就会进行Ajax调用 – 但是在Ajax调用完成之前不会调用回调。 同时,您的代码快速运行。

或者,您可以使用jQuery.when()函数来包装一些跳跃的箍。