2016-04-24 66 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

相關問題