我的網站上有一個表格,在某些情況下我需要驗證電話號碼,而在其他情況下我不需要(基于輸入欄位的更改。
該表單使用來自資料庫的資料填充,如果輸入“phone_Number”已更改,我需要在按下提交時驗證該號碼。
如果輸入“phone_number”未更改,則表單還有其他需要驗證的輸入。
我的問題是:如果電話號碼發生了變化,我需要使用 ajax 而不是 1 進行 2 次呼叫,而且我不知道最好的方法是什么。我已經讀過 async: false 已被棄用,所以我需要幫助如何安排我的代碼以使提交作業。
我查看了一些不同的 jquery when/wait 示例,但我對 jquery 的理解不夠好,無法將示例結果更改為我的問題。
$(document).on('submit', '#order_form', function(event){
let form_data = new FormData($('#order_form')[0]);
let phone_number = $('#phone_number').val();
form_data.append('customer_name',$('#customer_name').val());
if($('#old_number').val() != phone_number) {
$.ajax({
url: 'https://api.numlookupapi.com/v1/validate/' phone_number '?apikey=api_key',
dataType: 'json',
success: function(json) {
form_data.append('valid',json.valid);
form_data.append('number',json.number);
form_data.append('local_format',json.local_format);
.... some additional "form_data.append" happens here ....
}
});
} else {
form_data.append('local_format',phone_number);
}
$.ajax({
url: "process.php",
method: 'POST',
data: form_data,
contentType: false,
processData: false,
success: function () {
.... do something ....
}
});
});`
uj5u.com熱心網友回復:
您可以將第二個 AJAX 呼叫放在前一個 AJAX 函式的成功方法中。像這樣:
function processFormData(form_data)
{
$.ajax({
url: "process.php",
method: 'POST',
data: form_data,
contentType: false,
processData: false,
success: function () {
.... do something ....
}
});
}
$(document).on('submit', '#order_form', function(event){
let form_data = new FormData($('#order_form')[0]);
let phone_number = $('#phone_number').val();
form_data.append('customer_name',$('#customer_name').val());
if($('#old_number').val() != phone_number) {
$.ajax({
url: 'https://api.numlookupapi.com/v1/validate/' phone_number '?apikey=api_key',
dataType: 'json',
success: function(json) {
form_data.append('valid',json.valid);
form_data.append('number',json.number);
form_data.append('local_format',json.local_format);
.... some additional "form_data.append" happens here ....
processFormData(form_data);
}
});
} else {
form_data.append('local_format',phone_number);
processFormData(form_data);
}
});
當電話號碼發生變化processFormData()時,只有在API呼叫成功時processFormData()才會呼叫,否則直接呼叫。
注意:為什么不簡單地使用一個 AJAX 呼叫并在 PHP 中檢查電話號碼是否已更改?您可以從 PHP 呼叫 API 以檢查該數字是否有效。一般來說,您應該始終在服務器端進行最終輸入驗證,因為任何客戶端都可以被操縱。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/461022.html
