[英]jquery ajax form validation on submission then continue on to form submission
這就是我想要做的
捕獲我的表單提交並將其提交到我的Ajax處理中以進行表單驗證(顯然無需重新加載頁面)
然后,如果ajax服務器端未返回錯誤數組(下面的代碼中的數據),請繼續進行實際的表單提交。 代碼段底部的“ return false”應防止jQuery默認行為(即提交表單)
我嘗試過如果沒有任何錯誤就return true
,但這是行不通的。
有什么建議么?
這是到目前為止我得到的:
$('.submit').click(function(e) {
$.ajax({
type: "POST",
url: "/processform_ajax",
data: $(':input').serializeArray(),
dataType: "json",
success: function(data) {
if (data != '') {
$("#response span").html("");
$('.highlightbox').removeClass('highlightbox');
} else {
$('#myform').submit();
}
},
error: function(error, txt) {
alert("Error: " + error.status);
}
});
return false;
});
我用兩種不同的方式處理:
首先,使用出色的Jquery Inline驗證工具進行前端驗證。此步驟可以消除95%的問題,然后才能使PHP和Jquery變得棘手。
其次,我將表單中的值提交給腳本。 讓PHP(以我為例)在驗證時進行“思考”。 如果不正確,我會以json_encoded字符串的形式返回成功函數的信息。 我建立一個案例(例如,如果data.valid == true
),則顯示錯誤標志。 否則,執行成功步驟並在UI中通知用戶。
我認為您的情況關鍵是確保返回的數據經過json_encoded。 僅供參考,我注意到json_encode出現了一些非常隨機的問題,有時由於方括號而導致數據返回函數出現問題,這完全有效,但有時會引起無錯誤的錯誤。
祝好運。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.