1

入力されたすべての数値がゼロの場合に警告を促すスクリプトを作成します。スクリプトは正しく機能していますが、番号が正しく入力されている場合、firebug コンソールで JS エラーが発生します。

エラープロンプトなしでこれを解決するにはどうすればよいですか。

コード -

jQuery("#EventPhone").focusout(function(){
   var $this = jQuery(this);
   var phoneNum = ($this.val()).toString();
   var count1 = phoneNum.match(/0/g).length || "";
   var phoneNumLen = phoneNum.length
   if( phoneNumLen == count1 )
   {
   alert('All numbers in a phone number cannot be zero!!');
   $this.val("");
   }
});

フィドル - http://jsfiddle.net/8XmpG/

4

2 に答える 2

1

UPDATE (文字が許可されている場合)

このコードを使用 -デモ

jQuery("#EventPhone").focusout(function(){
   var phoneNum = parseInt($(this).val().trim().replace( /\D+/g,''));
   if(phoneNum === 0 )
       alert("All numbers in a phone number cannot be zero!");
});

文字が許可されていない場合は、このコードを使用してください - DEMO

jQuery("#EventPhone").focusout(function(){
   var $this = jQuery(this);
   var phoneNum = $this.val().trim();
   var phoneNumber = parseInt(phoneNum);
   if(phoneNum == phoneNumber && phoneNumber !== 0 ) // don't use phoneNum === phoneNumber 
   {
       alert("Right Number");
   }
    else{
        alert('Wrong Number');
        $this.val("");
    }
});
于 2013-07-26T10:41:46.583 に答える
0

ここで、次の行にエラーがあります。

var count1 = phoneNum.match(/0/g).length || "";

null になる可能性があるためphoneNum.match(/0/g)、最初に次のようにチェックすると、次のようになります。

var count1 = (phoneNum.match(/0/g) && phoneNum.match(/0/g).length) || "";

すべてがうまくいくでしょう。

スペースを確認します。

var phoneNum = ($this.val()).toString().replace(' ', '');
于 2013-07-26T10:37:58.003 に答える