0

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;
}
}
4

2 に答える 2

1

の用途は何ですか、

event.preventDefault();
return false;

最後の行に。それが問題かもしれないと思います。

于 2013-02-22T08:21:14.993 に答える
0

event.preventDefault(); を使用しないでください。validatePhoneNumber() 関数の最後に

すべてのデフォルトのポストバックを防ぎます

于 2013-02-22T10:37:19.203 に答える