2015-05-04 72 views
0

我有一個驗證,通過前綴檢查電話號碼。
但是,當我調用函數時,第二個循環內的東西似乎失敗了。
我懷疑與otherPrefix有關。電話號碼前綴驗證問題/ JavaScript

這裏是我的代碼:

function PhoneN(Phone) 
{ 
    var number = document.getElementById(Phone).value; 
    var zero = 0; 
    var prefix = ["0", "2", "3", "4", "8", "9"]; 
    var otherPrefix = ["|", "7|7", "7|3", "7|4", "7|2", "7|8"]; 
    var boolian = false; 
    var PrefixHolder; 
    var PrefixHolder2; 
    if(number.charAt(0) == zero) 
    { 
     for(var i = 1; i < prefix.length; i++) 
     { 
      if(prefix[i] == number.charAt(1)) 
       boolian = true; 
     } 
    } 
    if(number.charAt(0) == zero) 
    { 
     for(var cut in otherPrefix) 
     { 
      var position = otherPrefix[cut].split("|"); 
      PrefixHolder.value = position[0]; 
      PrefixHolder2.value = position[1]; 
      if(number.charAt(1) == PrefixHolder.value && number.charAt(2) == PrefixHolder2.value) 
       boolian = true; 
     } 
     if(boolian == false) 
      alert("The Prefix number is invalid"); 
    } 
} 
+1

'但在循環裏面的東西是錯誤的'什麼錯了? – devqon

+0

exacly我想我寫了一些關於它,要檢查我再次放置的文本。循環被執行,但是循環內部有錯誤。 –

+0

檢查您的瀏覽器控制檯是否存在錯誤 – devqon

回答

0

如果你的代碼不早失敗,它將在最新這裏失敗:

PrefixHolder.value = position[0]; 
PrefixHolder2.value = position[1]; 

這是因爲PrefixHolderPrefixHolder2undefined (你他們宣佈他們,但你從來沒有初始化他們),並試圖訪問undefined屬性是一個錯誤河

此外,它看起來像一個不必要的複雜。是否有一個特定的原因,你不只是完全離開他們,並做這樣的檢查:

if(number.charAt(1) == position[0] && number.charAt(2) == position[1]) 

+0

你是是的,我怎麼看不到那個哈哈,沒有它只是因爲我傾倒,謝謝你,我的朋友,我現在試試看,看看。謝謝你們 –

+0

功能是像懷疑再次感謝你的工作,我現在去升級的條件,所以不是所有的人都會無緣無故地執行。 –