2015-09-30 4 views
2

Ниже мой плунер, где у меня есть текст ввода, который мне нужно, чтобы он принимал только числа. Я пробовал использовать стандартную угловую проверку Js-формы, но событие не возбуждает. сталкиваются с аналогичной проблемой, с просьбой поделиться своими мыслями ..Чтобы разрешить входной текст принимать только числа

Link

<input type="text" ng-model="valuesForOutputs[item.name][i]" 
       ng-disabled="isDisabled(item.name, i)" ng-pattern="/^(\d)+$/" 
          required name="value" 
               placeholder="Enter value"> 
     <span class="error pop_up" ng-show="targetForm.value.$error.pattern">Please enter only number</span> 
+8

''? – Rayon

+0

Вы пробовали это как на Chrome, так и на Firefox? Они действуют одинаково? Есть ли ошибки в консоли вашего браузера? Я использовал Webshims для типов HTML5 в прошлом для обработки разных браузеров и плагин jquery-mask для обеспечения постоянного контроля над браузерами. – Phil

+0

Я пробовал Firefox.Только первое текстовое поле внутри ng-repeat i, показывающее ошибку.Rest из полей не бросает ошибки – forgottofly

ответ

1

Вы можете использовать onkeypress событие TextField:

var allowOnlyNumbers=function(field){ 
 
     if (!String.fromCharCode(event.keyCode).match('[0-9.]') || (field.value.match('[.]') && String.fromCharCode(event.keyCode) == '.')) 
 
      event.preventDefault(); 
 
    };
<input onkeypress='allowOnlyNumbers(this)' type="text" ng-model="valuesForOutputs[item.name][i]" 
 
       ng-disabled="isDisabled(item.name, i)" ng-pattern="/^(\d)+$/" 
 
          required name="value" 
 
               placeholder="Enter value">

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