在<input />标记中忽略最小值

时间:2015-11-15 04:36:55

标签: html knockout.js

好的,所以我不知道关于knockout.js的第一件事,这可能是我的问题。 我正在维护一个ASP.NET应用程序,我的任务是更改一个html 在使用knockout.js的解决方案中的文件。以下是有问题的代码行:

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

此输入标记允许用户输入负数,我们不想允许。所以我尝试的是添加min =&#34; 1&#34;到标签。结果是它被忽略然后转移到下一组代码行 然后爆炸了。

min是不起作用的原因是因为这不仅仅是一个简单的输入标记,并且在data-bind中包含了敲除引用? 如果是这样,我怎样才能进行所需的验证 只接受正数?请帮助并记住我对淘汰赛一无所知。谢谢!!

1 个答案:

答案 0 :(得分:0)

尝试这样的事情。使用javascript忽略否定符号的按键。我不认为所有浏览器都支持数字类型当然你需要正确的句柄来将keydown事件分配给正确的输入框。

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

jsfiddle

这与min =“0”属性相结合将阻止数字块允许负数。