<input type="number"> 允许 2 位小数

新手上路,请多包涵

我有一个 <input type="number"> 我想将用户的输入限制为纯数字或小数点后最多两位小数的数字。

基本上,我要求输入价格。

我想避免做正则表达式。有办法吗?

 <input type="number" required name="price" min="0" value="0" step="any">

原文由 nubteens 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.9k
2 个回答

而不是 step="any" ,它允许任意数量的小数位,使用 step=".01" ,它允许最多两位小数。

规范中的更多详细信息: https ://www.w3.org/TR/html/sec-forms.html#the-step-attribute

原文由 Michael Benjamin 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果有人正在寻找只允许带有可选 2 位小数的数字的正则表达式

^\d*(\.\d{0,2})?$

例如,我发现下面的解决方案相当可靠

HTML:

 <input name="my_field" pattern="^\d*(\.\d{0,2})?$" />

JS / 查询:

 $(document).on('keydown', 'input[pattern]', function(e){
  var input = $(this);
  var oldVal = input.val();
  var regex = new RegExp(input.attr('pattern'), 'g');

  setTimeout(function(){
    var newVal = input.val();
    if(!regex.test(newVal)){
      input.val(oldVal);
    }
  }, 1);
});

原文由 Weston Ganger 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题