如何通过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()
函数来包装一些跳跃的箍。