2015-09-28 3 views
0

Я пытался использовать этот directive и он работает нормально,Как ввести только число (цифры и десятичную точку и отрицательный) для ввода типа «число»?

использование на ввод типа текста:

<input valid-number ng-model="mynumber" 
     allow-decimal="false" allow-negative="true" type="text" /> 

Но когда я пытаюсь использовать как следующий,

usgae на входе тип номер:

<input valid-number ng-model="mynumber" 
     allow-decimal="false" allow-negative="true" type="number" /> 

It's broken. Я использую номер типа ввода для мобильных устройств, чтобы открыть цифровую клавиатуру.

Пожалуйста, дайте мне несколько предложений.

Спасибо.

+1

Почему вам нужна директива для ввода [тип = "число"]? AngularJS выполняет такую ​​проверку. [Проверьте документацию для получения дополнительной информации] (https://docs.angularjs.org/api/ng/input/input%5Bnumber%5D). –

+0

Чтобы ограничить тире/точку только один раз, вместо того, чтобы показывать сообщение, пользователь может ввести тире/точку несколько раз. – Rajesh

ответ

2

С плагином

Angularjs-Directive-Accept-Positive-Negative-Decimal-Number-Only

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

по умолчанию Ожидаемый 0 быть рядом

Вам необходимо заменить эту строку в плагине

if (text == '0' || text == null && attrs.allowDecimal == "false") return '0'; 

с

if (text == '0' || text == null && attrs.allowDecimal == "false") return 0; 

Результат:

plunker

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