2013-07-26 2 views
1

Создание сценария для запроса предупреждения, если все введенные числа являются нулями. Скрипт работает правильно, но через ошибку JS в консоли firebug, если номер введен правильно.Ошибка запроса, если данные введены правильно

Как я могу решить эту проблему без подсказки об ошибке.

код -

jQuery("#EventPhone").focusout(function(){ 
    var $this = jQuery(this); 
    var phoneNum = ($this.val()).toString(); 
    var count1 = phoneNum.match(/0/g).length || ""; 
    var phoneNumLen = phoneNum.length 
    if(phoneNumLen == count1) 
    { 
    alert('All numbers in a phone number cannot be zero!!'); 
    $this.val(""); 
    } 
}); 

Fiddle - http://jsfiddle.net/8XmpG/

+0

Что означают эти слова: **, но через ошибку JS в консоли firebug, если номер введен правильно. ** – krishgopinath

+0

На самом деле странно, что вы не можете иметь 0 в телефонном номере. –

+0

Ваш телефонNum.match (/ 0/g) выражение получает вас null –

ответ

0

Теперь у Вас есть ошибка в этой строке:

var count1 = phoneNum.match(/0/g).length || ""; 

потому phoneNum.match(/0/g) может быть нулевым, поэтому, если вы проверяете его первый как это:

var count1 = (phoneNum.match(/0/g) && phoneNum.match(/0/g).length) || ""; 

все будет в порядке.

Проверить наличие пространства:

var phoneNum = ($this.val()).toString().replace(' ', ''); 
+0

thx для обновления/редактирования +1 :) – Trialcoder

+0

Итак count1 может быть "", даже если он работает из-за конверсий, я полагаю, что это не его намеренное поведение ... –

+0

@ FSou1 одно: оно проходит '0 0', что правильно: – Trialcoder

1

UPDATE (если символы разрешены)

использовать этот код - DEMO

jQuery("#EventPhone").focusout(function(){ 
    var phoneNum = parseInt($(this).val().trim().replace(/\D+/g,'')); 
    if(phoneNum === 0) 
     alert("All numbers in a phone number cannot be zero!"); 
}); 

если символы не допускаются, используйте этот код- DEMO

jQuery("#EventPhone").focusout(function(){ 
    var $this = jQuery(this); 
    var phoneNum = $this.val().trim(); 
    var phoneNumber = parseInt(phoneNum); 
    if(phoneNum == phoneNumber && phoneNumber !== 0) // don't use phoneNum === phoneNumber 
    { 
     alert("Right Number"); 
    } 
    else{ 
     alert('Wrong Number'); 
     $this.val(""); 
    } 
}); 
+1

Номер телефона не обязательно должен быть действительным номером (он _may_ содержит буквы и пробелы). Помимо нескольких небольших ошибок, что не так с его оригинальной реализацией? –

+0

@Adriano Обновлен ответ, чтобы принимать буквы и пробелы в номере. –

+1

@Trialcoder проверить демо, я думаю, что он соответствовал всем вашим потребностям –

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