我有这个登录表单,我做了服务器端验证,现在我试图做一个jQuery验证。jQuery AJAX调用总是触发成功
形式片段:
<div class="form-actions">
<button type="submit" class="btn green pull-right">Login <i class="m-icon-swapright m-icon-white"></i></button>
</div>
jQuery的片段:(我用引导的login.js)
submitHandler: function (form) {
var un = $('#usernameEmail').val();
var p = $('#pass').val();
$.ajax({
url: '/admin/checkIfUsernameOrEmailExists',
type: 'POST',
data: {un: un, pass: p},
success: function(data){
form.submit();
},
error: function(data){
alert("Error");
}
});
}
功能checkIfUsernameOrEmailExists
工作完美。我在成功函数上做了一个console.log(data)
(因为它总是触发),并且当它必须是假的时候数据是假的,而当必须是真时,数据是假的。所以鉴于这种情况,我对这个错误可能在哪里感到困惑。
编辑
我没有成功尝试过这个,现在我肯定知道,在理论上是正确的,因为拉梅什和Keune建议...但仍不能工作,也许我有一些错误和唐没有意识到?没有错误显示,没有登录console.log
,没有警报显示。
submitHandler: function (form) {
var un = $('#usernameEmail').val();
var p = $('#pass').val();
$.ajax({
url: '/admin/checkIfUsernameOrEmailExists',
type: 'POST',
data: {un: un, pass: p},
success: function(data){
if (data) {
form.submit()
}else{
// console.log(data);
alert(data);
};
},
error: function(data){
alert("Error");
}
});
}
SOLUTION
正如Blurfus说,我错过了 “” 那么,成功函数内部的数据比较应该是对一个字符串:
success: function(data){
if (data == "true") {
form.submit()
}else{
alert(data);
};
},
成功功能在请求成功时被调用。它并不了解您的业务逻辑。 – keune
@keune我现在知道。谢谢你的提示。无论如何,正如我告诉RameshKotha它的成功和用户可以登录时,它的作品。但如果错误,如果data是一个对象或一个数组,或者任何真实的东西(例如* string *'“false”),那么警报msge不会显示为 – Limon
,它会提交表单。 –