2015-09-27 2 views
0

Я использую этот код для подтверждения номера телефона:Phone Validation не работает должным образом

<script> 
$("#Phone").keydown(function (e) { 
     // Allow: backspace, delete, tab, escape, enter and . 

     if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 || 
     // Allow: Ctrl+A 
     (e.keyCode == 65 && e.ctrlKey === true) || 
     // Allow: home, end, left, right, down, up 
     (e.keyCode >= 35 && e.keyCode <= 40)) { 



     // let it happen, don't do anything 
     return; 
     } 
     // Ensure that it is a number and stop the keypress 
     if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) { 
     e.preventDefault(); 
     } 
    }); 


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

Я хочу, чтобы пользователю ввести только 11 цифр, и если нет, то он предупреждает пользователя о том, что они имеют для ввода 11 цифр и устанавливает значение в значение null.

Проблема заключается в том, что при оповещении о том, что число меньше 11 цифр, оно не устанавливает значение null.

+0

Какое значение должно быть установлено null? Где ваш код, который устанавливает значение null? –

+0

Я также пробовал this.value = ""; но это не сработало! – Sean

+0

Независимо от того, что вводит пользователь, если это не 11 цифр, тогда он должен установить значение в ничто. – Sean

ответ

0

Я знаю, что вы просите решение JS, но это может быть сделано с новыми атрибутами в html5

<input type="tel" pattern="[0-9]{11}" placeholder="Your 11 digit phone number..." required/> 

Fiddle здесь: https://jsfiddle.net/7owhrssr/

+0

Ну, я должен признать, это намного проще и легче! Спасибо – Sean

0

Этот код может помочь вам, причина может у вас есть проблема с регулярным выражением

 var regex =/^\d+$/; 
if (regex.test(val)) { 
     alert('value is ok, use it'); 
    }else{ 
alert('Invalid number; must be eleven digits'); 
Phone.focus() 
    return false} 
+0

Спасибо за ваши усилия, но нет! он не сработал – Sean

+0

, почему я его протестировал, его отлично работали, что его проблема ?? !! –

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