检查字段包含数据,其中一个是数字

时间:2016-04-24 08:58:24

标签: javascript forms

javascript的新手,但我试图检查三个字段(1)是否包含某些数据,以及(2)第三个字段是否包含任何数字。第三个是电话#字段。我意识到破折号会涉及到。并且表单可以验证用户是否只输入了一个数字或一个数字以及一些文本。但我从小做起。任何帮助都会很棒。

function validate(){
    if ((document.myForm.fname.value=="") || (document.myForm.lname.value=="") 
 || (document.myForm.telenumber.value=="")){
        alert("You must fill in all of the required fields!")
        return false
    }
    else
        return true
}


<form name="myForm" onsubmit="return validate()">
    <label for="fname">First name</label>
    <input type="text" id="fname" name="firstname"><BR>
    <label for="lname">Last name</label>
    <input type="text" id="lname" name="lastname"><BR>
    <label for="tele">Telephone number</label>
    <input type="text" id="tele" name="telenumber">

    <input type='submit' value='Submit' /><br />
</form>

1 个答案:

答案 0 :(得分:0)

我会使用typeof函数检查fname和lname是否为字符串加上正则表达式,以检查电话号码格式是否有效。

工作代码示例:

(function(){
  
  function validate(e) {
  
    e.preventDefault();

    var fname = document.getElementById('fname').value,
        lname = document.getElementById('lname').value,
        phone = document.getElementById('tele').value;
      
     //regex example for phone number format
     var regex = new RegExp('^((([0-9]{3}))|([0-9]{3}))[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4}$');
     
    
    //Validation
  
    if(typeof fname === 'string' && typeof lname === 'string' && regex.test(phone))
      console.log('Ok. valid user data');
    else
      alert('Invalid user data!');
   
  } 

   
  // Event listner for form submission
  
  document.getElementById('myForm').addEventListener('submit', validate);

})();
<form name="myForm">
    <label for="fname">First name</label>
    <input type="text" id="fname" name="firstname">
    <label for="lname">Last name</label>
    <input type="text" id="lname" name="lastname">
    <label for="tele">Telephone number</label>
    <input type="text" id="tele" name="telenumber">

    <input type='submit' value='Submit' />
</form>

附加说明:

我正在检查表单控件是否为typeof以获得更多代码清晰度,但它是多余的,因为表单控件始终是字符串。

因此,如果您希望验证条件可以只是if(regex.test(phone))