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

更新(如果允许使用字符)

使用此代码 -演示

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 || "";

因为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 回答