javascript - 如何控制小数字段以允许输入多个点?

标签 javascript jquery

我有一个可以控制的字段,不接受字母等。我允许输入“。”以便输入小数。我怎样才能控制不超过一个“.”?

这是我的源代码:

$(".allow_decimal").on("input", function(evt) {
   var self = $(this);
   self.val(self.val().replace(/[^0-9\.]/g, ''));
   if ((evt.which != 46 || self.val().indexOf('.') != -1) && 
       (evt.which < 48 || evt.which > 57)) 
   {
     evt.preventDefault();
   }
});

最佳答案

HTML5 规范允许使用number 输入类型。 number 输入允许的属性之一是 step,它是数字可能向上/向下的增量:

<form>
<input type="number" step="0.1" />
<input type="submit">
</form>

虽然您可以输入“2.25”之类的内容,但当您尝试提交表单时,任何兼容 HTML5 的浏览器都会告诉您:

Screenshot

这仅适用于兼容 HTML5 的浏览器:CanIUse.com

一如既往 - 不要信任用户发送的任何内容 - 始终在服务器上进行验证;)

关于javascript - 如何控制小数字段以允许输入多个点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44413992/

相关文章:

javascript - Bootstrap 显示/隐藏选项卡组件

php - 离线填写表格

javascript - 使用 JavaScript 获取 <h2> 标签的值

javascript - 文本区域的边距内的 CSS 宽度 100%

javascript - 随机淡出 <div>

javascript - 在动态 form.submit() 之后应用 CSS

javascript - Vue.js 2 : set a prop value via http. 组件挂载前get

javascript - 匹配最后一个字符,如果正则表达式为空,则获取倒数第二个字符

javascript - 如何使用jquery在不可编辑的文本框中获取默认结束日期

javascript - 如何在一行中干燥我的 jQuery 代码