Google Phone 検証ライブラリを使用して、AJAX 呼び出しで番号が有効かどうかを確認しています。番号が有効でない場合、フォームが送信されないようにするには、以下の関数が必要です。
現在、フォームが正しく送信されませんが、true を返すとフォームは送信されません。true ステートメントでのアラートは確かに発生しますが、フォームはまだ送信されません。私は何が欠けていますか?
$(document).ready(function(){
$('form#sellerForm').submit(validatePhoneNumber);
});
function validatePhoneNumber() {
var output = null;
var phoneNumber = $('#phone').val();
var node = document.getElementById('phoneOutput');
var country = $('#country').val();
if(country == -1){
output = translateNoCountry();
node.innerHTML = output;
event.preventDefault();
return false;
}
if(output == null){
//AJAX to get country code from country for var regionCode;
$.ajax({ type: "POST",
url: '/ajax/validate_phone.php',
data: {country: country},
cache: false,
success: function(result) {
var regionCode = jQuery.parseJSON(result);
try {
var phoneUtil = i18n.phonenumbers.PhoneNumberUtil.getInstance();
var number = phoneUtil.parseAndKeepRawInput(phoneNumber, regionCode);
var isNumberValid = phoneUtil.isValidNumber(number);
if(!isNumberValid){//invalid number
output = translateInvalidePhone();
}
} catch (e) {
output = translateInvalidePhone();
}
if(output != null){
node.innerHTML = output;
event.preventDefault();
return false;
}else{
alert('Hello world');
return true;
}
}
});
event.preventDefault();
return false;
}
}