2016-04-24 41 views
1

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> 
+0

的电话号 - http://www.w3resource.com/javascript/form/phone-no-validation.php正则表达式的 –

回答

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))

+0

价值表单控件总是一个字符串,所以* typeof *似乎是多余的。 – RobG

+0

@RobG是的,这是正确的。我补充说,只是为了更清楚,但它是多余的。我正在编辑我的答案以包含关于该问题的说明。谢谢 – fbid

+0

谢谢。因此,既然我是新手,那么通过将代码添加到我想出的代码并将其包含在此处,无法做到这一点? – Chris

相关问题