如何将输入字段限制为只有两个小数点的数字

时间:2012-07-31 07:09:20

标签: javascript jquery

  

可能重复:
  JavaScript: formatting number with exactly two decimals

我需要一个JS(jQuery)脚本,它可以帮助我将数字输入限制为两个小数点。

我尝试了this,它完美地将我的输入限制为浮点数或整数。但我无法理解如何将其限制为两个小数点。

我在这里也看了很多其他的答案,但似乎没有人阻止用户在输入时输入两个以上的数字。

有什么建议吗?感谢名单。

编辑:我的代码,如果有帮助

表格:

<form method="post" id="split_form" 
    action="?name=ajax&case=split_action&sid=' . $id . '" 
    onSubmit="return checkform(this);" >

    <table class="default" cellpadding="0" cellspacing="0">
      <tr><td><input class="numeric1" type="text" name="summ_1" value="" />
      <tr><td><input class="numeric2" type="text" name="summ_2" value="" />
    </table>
    <input type="submit" class="submit" value="ok" />

</form>

JS脚本:

<script type="text/javascript" src="/js/jquery.numeric.js"></script>
<script language="JavaScript" type="text/javascript">
    $(".numeric1").numeric();
    $(".numeric2").numeric();

    function checkform ( form ) {
        var sum1 = form.summ_1.value;
        var sum2 = form.summ_2.value;
        var new_summ = parseFloat(sum1) + parseFloat(sum2);
        var summ = parseFloat(' . $row[1]['summ'] . ');

        if ( ( sum1 > 0 && sum2 > 0 ) && ( new_summ == summ ) ) {
            return true;
        } else {
            return false ;
        }   
    }
</script>

1 个答案:

答案 0 :(得分:1)

numeric plugin, line 135中,处理数字条目。目前,他们总是被允许。您可以修改此插件,只有在小数点不存在或不超过两步之后才允许数字:

var decimalIx = $(this).val().indexOf(decimal);
allow = decimalIx == -1 || decimalIx >= $(this).val().length - 2;

我打算让-2可配置,但正如Alex Ball在评论中指出的那样the work has already been done