javascript验证数字

时间:2014-09-22 03:08:22

标签: javascript validation

对不起,我还是javascript的新手。

我用HTML开发了一个表单,现在我正在尝试添加javascript来验证表单。

到目前为止,我有简单的javascript来确保填写每个元素,

    if (document.order.suburb.value=="")
    {
        alert("Suburb Cannot Be Empty")
        return false
    }   

if (document.order.postcode.value=="")
    {
        alert("Postcode Cannot Be Empty")
        return false
    }

然后我用javascript来验证某些元素的长度,

    if (document.order.telephone.value.length < 10) 
    { 
        alert("Invalid Telephone Number") 
        return false 
    } 

现在我正在尝试验证电话号码部分中的数值,但它没有正确执行,就像代码在执行时被忽略一样。

var digits="0123456789"
var temp
var i   

for (i = 0 ; i <document.order.telephone.value.length; i++)
    { 
    temp=document.order.telephone.value.substring(i,i+1) 
if (digits.indexOf(temp)==-1)
    { 
        alert("Invalid Telephone Number")
        return false
    }
    }

感谢阅读和感谢帮助:)几个星期以来一直坚持这个问题并且不知道我做错了什么,我试着用另一个表单编写一个单独的文档,它似乎工作正常。< / p>

修改

验证邮政编码中的数字的代码

  var post = document.order.postcode.value.replace(white,'');

  if(!post){
    alert("Post code required !");
    return false;
  }

   post = post.replace(/[^0-9]/g,'');//replace all other than digits
  if(!post || 4 > postcode.length) {
    alert("Invalid Postcode !");
    return false;
  }

2 个答案:

答案 0 :(得分:0)

这是一个FIDDLE,可以让你思考。

您可以通过数百种方式处理此任务。我刚刚使用了正则表达式,并将所有非数字替换为&#39;&#39;&#39; - 并比较两个变量的长度 - 如果除了数字之外还有任何数据,则正则表达式变量的长度将短于未更改的mytelephone。

你可以做各种各样的&#34;验证&#34; - 就我如何定义&#34;有效&#34;。

而言,我非常具体

JS

var mysuburb, mypostcode, mytelephone;

$('.clickme').on('click', function(){

    mysuburb = $('.suburb').val();
    mypostcode = $('.postcode').val();
    mytelephone = $('.telephone').val();
    console.log(mysuburb + '--' + mypostcode + '--' + mytelephone);

    if(mysuburb.length < 1)
      {
       $('.errorcode').html('');
       $('.errorcode').append('Suburb is required');
       return false;
       }
    if(mypostcode.length < 1)
      {
       $('.errorcode').html('');
       $('.errorcode').append('postode is required');
       return false;
       }
    if( mytelephone.length < 1 )
      {
       $('.errorcode').html('');
       $('.errorcode').append('telephone number is required');
       return false;
       }
    if( mytelephone.length != mytelephone.replace(/[^0-9]/g, '').length) 
      {
       $('.errorcode').html('');
       $('.errorcode').append('telephone number must contain only numbers');
       return false;
       }   
});

答案 1 :(得分:0)

您可以尝试这个例子:

&#13;
&#13;
var validate = function() {
  var white = /\s+/g;//for handling white spaces
  var nonDigit = /[^0-9]/g; //for non digits
  if(!document.order.suburb.value.replace(white, '')) {
    alert("Suburb required !");
    return false; //don't allow to submit
  }
  var post = document.order.postcode.value.replace(white, '')
  if(!post) {
    alert("Post code required !");
    return false;
  }
  post = post.replace(nonDigit,'');//replace all other than digits
  if(!post || 6 > post.length) { //min post code length
    alert("Invalid Post code !");
    return false;
  }
  var tel = document.order.telephone.value.replace(white, '');
  if(!tel) {
    alert("Telephone required !");
    return false;
  }
  tel = tel.replace(nonDigit,'');
  if(!tel || 10 > tel.length) {
    alert("Invalid Telephone !");
    return false;
  }
  return true; //return true, when above validations have passed
};
&#13;
<form onsubmit="return validate();" action="#" name="order">
  Suburb: <input type="text" id="suburb" name="suburb" ><br/>
  Post code: <input type="text" id="postcode" name="postcode"/><br/>
  Telephone: <input type="text" id="telephone" name="telephone"/><br/>
  <input type="reset"/><input type="submit"/>
</form>
&#13;
&#13;
&#13;