2015-06-06 13 views
1

у меня есть код, как это, где я установить параметры {allowInvalid: true}Угловые ngModelOptions allowInvalid не работает

<input type="number" name="userName" 
     ng-model="user.name" 
     ng-model-options="{ allowInvalid: true }" 
     ng-blur="test(user)"/> 

Когда я входное значение не число в не числа, например: abc,
почему user.name еще изменилось в undefined?
, где я ожидал, что модель user.name должна быть 'abc'.

Полный код: http://plnkr.co/edit/BsLk2GWVkchNgKaOV453?p=preview Я использую угловой v1.3.16

+1

потому что вы используете 'тип =«число»' в этом случае для недопустимого ввода - значение является _undefined_ – Grundy

+1

После https://docs.angularjs.org/api/ng/input/input%5Bnumber%5D, вы не можете использовать 'allowInvalid' с атрибутом' type = "number" 'атрибутом – Kosta

+0

@grundy, которые были целью. Я использую 'allowInvalid: true'. Поэтому, если я ввожу недопустимое значение. он не должен изменять значение до неопределенного :( – GusDeCooL

ответ

9

После link, вы не можете использовать allowInvalid с type="number" атрибутом.

Проблемы, связанные с HTML5 ограничения проверки

В браузерах, которые следуют the HTML5 specification, input[number] не работает, как ожидалось с ngModelOptions.allowInvalid. Если во вход вводится не номер, браузер будет сообщать значение как пустую строку, что означает значения представления/модели в ngModel, а затем значение области также будет пустой строкой.

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