错误提示是否正确输入数据

时间:2013-07-26 10:33:44

标签: javascript jquery html

创建脚本以在输入的所有数字都为零时提示警报。如果数字输入正确,脚本正常工作但在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/

2 个答案:

答案 0 :(得分:1)

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

使用此代码 - DEMO

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("");
    }
});

答案 1 :(得分:0)

现在,您在此行中有错误:

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

因为phoneNum.match(/0/g)可能为null,所以,如果你先检查它是这样的:

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

一切都会好的。

检查空间:

var phoneNum = ($this.val()).toString().replace(' ', '');