我正在尝试使用jquery提交登录表单(这是一个弹出div)。如果表单验证失败,则我只希望在popup div上显示错误消息,并在ajax调用进入错误功能时页面重新加载时停止关闭该form(popup)。
这是我的js代码
$("#loginForm").submit(function(e) {
var email = $(".log-email").val();
var password = $(".log-pass").val();
e.preventDefault();
$.ajax({
type: "POST",
url: "/login",
dataType: "json",
data: {password:password, email:email},
success : function(data){
console.log(data);
window.location.href= data.redirecturl;
},
error:function(XMLHttpRequest,jqXHR, thrownError,ajaxOptions){
var errors = XMLHttpRequest.responseJSON;
console.log(XMLHttpRequest);
if(errors)
{
$(".login-error").text(errors.email);
$(".login-error").css("color","red");
}
// e.preventDefault();
jqXHR.error();
return false;
}
});
// .fail(function(){
// e.preventDefault();
// e.stopPropagation();
// });
});
和blade(HTML)代码看起来像,
<form id="loginForm">
{{ Form::email('email', null, ['class' => 'vbg-input log-email', 'maxlength' => '191', 'required' => 'required', 'autofocus' => 'autofocus', 'placeholder' => trans('validation.attributes.frontend.email')]) }}
{{ Form::password('password', ['class' => 'vbg-input log-pass', 'required' => 'required', 'placeholder' => trans('validation.attributes.frontend.password')]) }}
<a href="" class="forgot-passw">Forgot Your Password?</a>
<button class="sign-in hover-animation">
<span> {{trans('labels.frontend.auth.login_button')}} </span>
</button>
</form>
我尝试了各种方法,但没有错误就没有成功。当我使用jqXHR.error();我可以停止关闭表单,但是它在控制台中给了我一条错误消息,
Uncaught ReferenceError: jqXHR is not defined
at Object.error (script.js?v=1527662366599:148)
at fire (frontend.js?id=a613937eec44062691cf:7349)
at Object.fireWith [as rejectWith] (frontend.js?id=a613937eec44062691cf:7479)
at done (frontend.js?id=a613937eec44062691cf:13306)
at XMLHttpRequest.<anonymous> (frontend.js?id=a613937eec44062691cf:13538)
在这一点上确实很困难。提前致谢。
最佳答案
根据jQuery文档,请参见http://api.jquery.com/jQuery.ajax/
错误:函数(jqXHR jqXHR,字符串textStatus,字符串errorThrown)
因此需要更改为
error(jqXHR, textStatus, errorThrown)
https://jsfiddle.net/bhumi/rwe705ry/
关于javascript - 未捕获的ReferenceError:未定义jqXHR,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50598232/