2013-09-23 102 views
2

我想驗證使用javascript的單元格編號。javascript單元格號驗證

這是我的代碼。

if(number.value == "") { 
    window.alert("Error: Cell number must not be null."); 
    number.focus(); 
    return false; 
} 

if(number.length != 10) { 
    window.alert("Phone number must be 10 digits."); 
    number.focus(); 
    return false; 
} 

這是問題,當我提交表單輸出電話號碼,它顯示的錯誤單元格號碼不能爲空。它工作正常。 當我提交小於10位數的小區號碼的表單時,顯示的電話號碼必須是10位數字。這也很好。

問題是,當我提交10位數的表格,那麼它也顯示錯誤的電話號碼必須是10位數字。

請幫幫我。 謝謝。

並且還需要用於單元號的唯一數字的驗證碼。

+0

也許你需要做'number.value.length'? – sushain97

+0

謝謝,它工作。 – sapan

+0

另請注意,電話號碼在不同國家和時間有不同的格式和長度 –

回答

9

如果number是您的表單元素,則其長度將爲undefined,因爲元素沒有長度。你想

if (number.value.length != 10) { ... } 

更簡單的方法做一次所有的驗證,不過,將與正則表達式:

var val = number.value 
if (/^\d{10}$/.test(val)) { 
    // value is ok, use it 
} else { 
    alert("Invalid number; must be ten digits") 
    number.focus() 
    return false 
} 

\d的意思是「數字」和{10}意思是「十倍」。 ^$將它錨定到開始和結束,因此類似asdf1234567890asdf的內容不匹配。

+0

它在某種程度上起作用,但輸入的數字超過10位時。它沒有顯示錯誤信息。爲什麼?並且如果我輸入10位數字以及更多附加字符,則不會顯示錯誤消息。 – sapan

+0

它與用戶給出的答案一起工作:sushain97謝謝你們倆。 – sapan

+0

@sapan對不起,我修好了。它應該顯示超過十位數的錯誤消息。 – Doorknob

2
function IsMobileNumber(txtMobId) { 
var mob = /^[1-9]{1}[0-9]{9}$/; 
var txtMobile = document.getElementById(txtMobId); 
if (mob.test(txtMobile.value) == false) { 
    alert("Please enter valid mobile number."); 
    txtMobile.focus(); 
    return false; 
} 
return true; 

調用驗證手機號碼功能HTML代碼 -

0

Mobile number Validation using Java Script,這個環節將提供演示和更多信息。

<input id="txtPhoneNo" type="text" onkeypress="return isNumber(event)" /> 
<input type="button" value="Submit" onclick="ValidateNo();"> 

<script type="text/javascript"> 

    function isNumber(evt) { 
     evt = (evt) ? evt : window.event; 
     var charCode = (evt.which) ? evt.which : evt.keyCode; 
     if (charCode > 31 && (charCode < 48 || charCode > 57)) { 
      alert("Please enter only Numbers."); 
      return false; 
     } 

     return true; 
    } 

    function ValidateNo() { 
     var phoneNo = document.getElementById('txtPhoneNo'); 

    if (phoneNo.value == "" || phoneNo.value == null) { 
      alert("Please enter your Mobile No."); 
      return false; 
     } 
     if (phoneNo.value.length < 10 || phoneNo.value.length > 10) { 
      alert("Mobile No. is not valid, Please Enter 10 Digit Mobile No."); 
      return false; 
     } 

     alert("Success "); 
     return true; 
     } 
</script> 
0

驗證此代碼: 它適用於在MS CRM 2016表格電話號碼字段的變化。

功能validatePhoneNumber(){

var mob = Xrm.Page.getAttribute("gen_phone").getValue(); 
var length = mob.length; 
if (length < 10 || length > 10) { 
    alert("Please Enter 10 Digit Number:"); 
    Xrm.Page.getAttribute("gen_phone").setValue(null); 
    return true; 
} 
if (mob > 31 && (mob < 48 || mob > 57)) { } 
else { 
    alert("Please Enter 10 Digit Number:"); 
    Xrm.Page.getAttribute("gen_phone").setValue(null); 
    return true; 
} 

}

0

此功能檢查按鍵的特殊字符,並消除了值,如果它不是一個數字

function mobilevalid(id) { 

var feild = document.getElementById(id); 

if (isNaN(feild.value) == false) { 
if (feild.value.length == 1) { 
    if (feild.value < 7) {feild.value = ""; 
    } 
} else if (feild.value.length > 10) { 
    feild.value = feild.value.substr(0, feild.value.length - 1); 
} 
if (feild.value.charAt(0) < 7) { 
    feild.value = ""; 
} 
} else { 
feild.value = ""; 
} 

} 

0

如果輸入:

if { number.value.length!= 10}...  

它肯定會工作,因爲值是從物體驅動的數量。