十进制输入的html文本框限制

时间:2011-11-04 06:37:45

标签: javascript html

我有一个html文本框,我想将小数后的数字限制为4。 在操作之后,可以使用toFixed()来实现,但是当用户输入文本时,有任何出路。

请指导我。

5 个答案:

答案 0 :(得分:1)

你尝试过REGEX吗?

正则表达式看起来像 /^[0-9]+.[0-9]{4}$/ 其中{4}表示.之后的长度为4

定义REGEX: var regex1=/^[0-9]+.[0-9]{4}$/;var yourtextfromTextBox= textBox.text();yourtextfromTextBox.match(regex1); 试试这个

答案 1 :(得分:0)

您可以使用 onkeyup="yourFunction" 功能来执行此操作。

答案 2 :(得分:0)

只是一个想法:jsFiddle live demo

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Round to 4 Decimal Places</title>
    <script type="text/javascript" src="http://ajax.microsoft.com/ajax/jQuery/jquery-1.4.2.min.js"></script>
    <script type="text/javascript">
        $(function() {
            $('#input').keypress(function(){
                try {
                    val = $(this).val().split('.');
                    if(val[1] > 999) return false;
                }catch(e){}
            })
        });
    </script>
</head>
<body>
    <p>Type a decimal number in the TextBox, limited to 4 decimals</p>
    <input id="input" type="text" />
</body>
</html>

当然,这仅适用于.,这可以通过仅允许数字来改进,并检查,

答案 3 :(得分:0)

以下是一个示例:http://jsfiddle.net/Regisc/5yber/

这使用正则表达式来验证输入的内容并使用this function来考虑carret。

在Chrome(开发)下测试

答案 4 :(得分:0)

     function decimal_only(e) {

         var charCode = (e.which) ? e.which : window.event.keyCode
         if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) {
             return false;
         }

         if (charCode == 46) { //Now Check The Decimal only allow 1 decimal
             if (e.value.indexOf('.') > -1) {
                 return false;
             }
         }
         return true;
     } 

在文本框事件onkeypress上使用此函数。

喜欢

onkeypress =&#34;返回decimal_only(this)&#34;

这将只允许1个十进制和整数值给用户