2015-11-15 2 views
0

Хорошо, поэтому я не знаю, что в первую очередь касается knockout.js, и это может быть моей проблемой. Я поддерживаю приложение ASP.NET, и мне было поручено изменить файл html в решении, которое использует knockout.js. Вот строка кода, которая возникла проблема:Min игнорируется в <input> тег

<input type="number" class="form-control" data-bind="value: Quantity, uniqueId: Quantity, uniqueMod: 'measure-quantity', enable: IsNotListMeasureIndividually() && !IsNotInstalled()" /> 

Этот вход тег позволяет пользователю ввести отрицательное число, и мы не хотим допустить. Так что я пытался добавить min = "1" в тег. В результате он проигнорировался, а затем перешел к следующему набору строк кода , затем взорвался.

Является ли причина того, что мин не работает, потому что это не просто простой тег ввода и включает ссылки на нокаут в привязке данных? Если да, то как я могу поместить в желаемую проверку на только положительные числа? Пожалуйста, помогите и помните, я ничего не знаю о нокауте. Спасибо!!

ответ

0

Попробуйте что-то вроде этого. Используйте javascript для игнорирования нажатия отрицательного символа. Я не думаю, что все браузеры поддерживают тип номера. Конечно, вам понадобится правильный дескриптор, чтобы назначить событие keydown правильному полю ввода.

document.getElementByTagName('input')[0].addEventListener('keydown',function(e){ 
     if (event.which == 109 || event.which == 173) { 
      event.preventDefault(); 
     } 
}); 

jsfiddle

Это в сочетании с мин = «0» атрибута будет препятствовать цифровой блок от разрешения отрицательных чисел.