如何限制输入?

时间:2014-05-23 13:33:39

标签: javascript jquery html forms

我输入的用户必须输入不超过4位小数的位数:

<input type="text" name="price" />

怎么做,所以在小数点后输入超过4位是不可能的?

5 个答案:

答案 0 :(得分:0)

也有一种方法,

.toFixed(4); // 4 would be the number of ints after decimal point.

.字符后只能获得/允许4个字符。

  

toFixed()方法使用定点表示法格式化数字。

您还可以从我附在帖子上的文档中了解更多信息。他们也很好地解释了这种方法的例子。

来自Mozilla开发者网络:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed

答案 1 :(得分:0)

在HTML5中:

<input type="number" step="0.0001" />

Demo

如果您想设置无效输入的样式(某些浏览器默认情况下会这样做),您可以使用:invalid选择器:

input:invalid {   box-shadow: 0 0 1.5px 1px red;   }

请注意,此方法不会尝试自动截断数字,但如果用户输入的四位数以上,则输入将无效,因此表单不会被提交:

Screenshot on Firefox

答案 2 :(得分:0)

$("#price").on('keyup',function(){
    $("#price").val($("#price").val().replace(/[^\d.-]/g, ''));
    var price = parseFloat($("#price").val());
    var decimals = ((price).toFixed(5)).replace(/^-?\d*\.?|0+$/g, '').length;
    if(decimals >= 4)
    {
       $("#price").val(price.toFixed(4));
    }
});

确定小数位数,如果小数位数大于4,则将输入中的值设置为4。

也不允许输入中包含任何非数字字符。

错误弹出窗口是垃圾UI。 http://jsfiddle.net/calder12/z4f5B/3/

答案 3 :(得分:0)

用户固定:

<input type="text" name="price" onBlur="this.value = parseFloat(this.value).toFixed(4);" />

答案 4 :(得分:-2)

将maxlength =“4”添加到输入代码中。

<input type="text" name="price" maxlength="4" />