我有這個登錄表單,我做了服務器端驗證,現在我試圖做一個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
,它會提交表單。 –