2015-05-04 6 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]; 

И это потому, что PrefixHolder и PrefixHolder2 являются как undefined (вы объявите им, но вы никогда не инициализируете их), и пытается получить доступ к свойствам undefined является erro р.

Кроме того, это похоже на ненужное осложнение для меня. Есть ли какая-то особая причина, по которой вы просто не оставляете их полностью, и выполните проверку:

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

?

+0

ye да да, как я не вижу этого lol, нет, это просто потому, что я свалка, спасибо, мой друг, я сейчас попробую это и посмотрю. Благодарю вас, ребята, –

+0

функция работает, как и подозреваемая, спасибо, я сейчас обновляю условия, поэтому не все они будут исполняться без причины. –

Смежные вопросы