2014-11-10 2 views
0

Я пытаюсь проверить некоторые поля на моей веб-странице. Вход может принимать только число. Но это не работает. это HTML:jQuery проверка в реальном времени не работает

<div class="form-group has-feedback"> 
       <label class="control-label" for="mcc">GSM.Identity.MCC</label> 
       <br/> 
       <input type="text" class="form-control" name="mcc" id="mcc" value="${mcc}"> 
       <span class="glyphicon form-control-feedback"></span> 
      </div> 

и это скрипт:

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("#mcc").on('keypress',function(){ 
      if(!$.isNumeric(this.val())){ 
       $(this).parent("div").removeClass("has-feedback").addClass("has-error"); 
      } 
      else{ 
       $(this).parent("div").removeClass("has-feedback").addClass("has-success"); 
      } 

     }); 
    }); 
</script> 

я попробовал изменяющий и изменение в каком-то образом, это не дает никакого результата вообще. примечание: я использую самозагрузки для CSS и стилей, класс «Хасс ошибок» отмечает вход красного

+0

Вы можете улучшить еще одну вещь - попробуйте проверить после нажатия клавиши, а не после нажатия клавиши. Смотрите здесь, почему: http://jsfiddle.net/vbxtbgaL/ Когда вы удаляете значение и вводите номер, keypress проверяет форму со второго символа. – mgibala

+0

Я обычно предоставляю все три (keypress, keydown, keyup) –

ответ

0

изменить это:

if(!$.isNumeric(this.val())){ 

к этому:

if(!$.isNumeric(this.value)){ 

или больше JQuery путь :

if(!$.isNumeric($(this).val())){ 

и в else части, может быть в некоторых случаях вам необходимо удалить т он has-error класс тоже:

else{ 
    $(this).parent("div") 
      .removeClass("has-feedback has-error") 
      .addClass("has-success"); 
} 
+0

независимо от того, что я пытаюсь, я даже регистрирую сообщения в консоли, я не получаю результата даже в консоли. Я думаю, проблема в том, как я загружаю скрипт. возможно (документ). Уже не должно быть здесь –

0

HTML5

<input type="number" class="form-control" name="mcc" id="mcc" value="${mcc}"> 

Обратите внимание на тип входа теперь номер вместо текста.

+0

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

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