接受只有2个十进制javascript的输入数字

时间:2012-09-25 09:05:45

标签: asp.net javascript-events javascript javascript-framework

我想让用户控制以获得这样的数字

125.00 125 125.27 125.20 1231545.25 2566.66

我尝试过使用蒙版文本框,但它的长度可以是任何东西 我使用了接受号码的javascript文本框 像这样 click here

如果javascript插件可用,请告诉我 或以价格格式接受价值的任何代码

限制用户在输入

时仅插入数字和两个小数空格

如果编号格式不正确,则在文本更改后剪切并格式化数字

如果125.2然后125.20或125然后125.00或135156.然后13​​5156

我在互联网上搜索但没有插件或脚本获得此

得到了像numeric.js这样的插件,但它不限制小数空格。

害虫如果有javascript可用

回复

我不想进行验证以检查输入的值我想接受限制值。

帮帮我。

3 个答案:

答案 0 :(得分:1)

您可以使用 Ajax Control Toolkit MaskedEdit 控件:

MaskedEdit 是一个 ASP.NET AJAX扩展程序,它附加到TextBox控件以限制可以输入的文本类型。 MaskedEdit将“掩码”应用于输入只允许输入某些类型的字符/文本。支持的数据格式包括:数字,日期,时间和日期时间。 MaskedEdit使用CultureName属性中指定的区域性设置。如果未指定,则文化设置将与页面相同:英语(美国)。

示例代码:

<ajaxToolkit:MaskedEditExtender  
    TargetControlID="TextBox2"   
    Mask="9,999,999.99"  
    MessageValidatorTip="true"   
    OnFocusCssClass="MaskedEditFocus"   
    OnInvalidCssClass="MaskedEditError"  
    MaskType="Number"   
    InputDirection="RightToLeft"   
    AcceptNegative="Left"   
    DisplayMoney="Left"  
ErrorTooltipEnabled="True"/> 

See Working Demo

答案 1 :(得分:0)

我也有同样的问题。这个代码解决了我的问题。这个解决方案正是你想要的。它不仅是你的十进制数,还会消除空格。试试这个。因为在我的情况下我允许用户输入'+'或' - '所以我也检查这个验证。

<script type="text/javascript">
        function checkforvalidation() {
            var txtvalue = document.getElementById('<%=txtspherical.ClientID %>').value;
            var leftstr = "";
            var rightstr = "";
            var tempstr = "";
            var operator = "";
            txtvalue = txtvalue.replace(/\s/g, '');
            document.getElementById('<%=txtspherical.ClientID %>').value = txtvalue;
            if (txtvalue.indexOf(".") != -1) {

                leftstr = txtvalue.split(".")[0];
                rightstr = txtvalue.split(".")[1];
                if (leftstr.indexOf("-") == 0 || leftstr.indexOf("+") == 0) {

                    operator = leftstr.substr(0, 1);
                    tempstr = leftstr.substr(1, leftstr.length - 1);

                    leftstr = ltrim(tempstr, '0');

                    if (leftstr.length == 0) {
                        leftstr = '0';
                    }

                    if (rightstr.indexOf("-") == -1 || rightstr.indexOf("+") == -1) {

                        rightstr = ltrim(rightstr, '0');

                        rightstr = chkdecimalpoints(rightstr);
                        if (operator != null || operator != "") {
                            txtvalue = operator + leftstr + "." + rightstr;
                        }
                        else {
                            txtvalue = leftstr + "." + rightstr;
                        }
                        document.getElementById('<%=txtspherical.ClientID %>').value = txtvalue;
                    }
                    else {
                        document.getElementById('<%=txtspherical.ClientID %>').value = "";
                    }
                }
                else {

                    tempstr = leftstr.substr(0, leftstr.length);
                    leftstr = ltrim(tempstr, '0');
                    if (leftstr.length == 0) {
                        leftstr = '0';
                    }
                    if (rightstr.indexOf("-") == -1 || rightstr.indexOf("+") == -1) {

                        rightstr = rtrim(rightstr, '0');
                        rightstr = chkdecimalpoints(rightstr);
                        txtvalue = leftstr + "." + rightstr;
                        document.getElementById('<%=txtspherical.ClientID %>').value = txtvalue;
                    }
                }
            }
            else if (txtvalue.indexOf("-") == -1 || txtvalue.indexOf("+") == -1) {

                txtvalue = ltrim(txtvalue, '0');
                if (txtvalue.length == 0) {
                    txtvalue = '0';
                }
                if (operator != null || operator != "") {
                    txtvalue = operator + txtvalue + ".00";
                }
                // txtvalue = leftstr + "." + rightstr;
                document.getElementById('<%=txtspherical.ClientID %>').value = txtvalue;
            }
            else if (txtvalue.indexOf("-") == 0 || txtvalue.indexOf("+") == 0) {

                operator = txtvalue.substr(0, 1);
                tempstr = txtvalue.substr(1, leftstr.length - 1);
                txtvalue = alltrim(tempstr, '0');
                if (operator != null || operator != "") {
                    txtvalue = operator + txtvalue + ".00";
                    document.getElementById('<%=txtspherical.ClientID %>').value = txtvalue;
                }
            }
        }

        function chkdecimalpoints(rightstr) {
            if (rightstr.length == 0) {
                rightstr = '00';

                return rightstr;

            }
            else if (rightstr.length == 1) {
                rightstr = rightstr + '0';
                return rightstr;
            }
            else if (rightstr.length > 2) {

                var tempvar = rightstr.substr(2, 1);

                if (tempvar >= 5) {

                    tempvar = parseInt(rightstr.substr(1, 1)) + 1;
                    tempvar = rightstr.substr(0, 1) + tempvar.toString();
                    if (tempvar.length > 2) {
                        tempvar = tempvar.substr(0, 2);
                    }
                    return tempvar;
                }
                else {

                    tempvar = rightstr.substr(0, 2);
                    return tempvar;
                }
            }
            else {
                return rightstr;
            }
        }
        function ltrim(str, chars) {
            chars = chars || "\\s";
            return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
        }
        function rtrim(str, chars) {
            chars = chars || "\\s";
            return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
        }
        function alltrim(str, chars) {
            chars = chars || "\\s";
            return str.replace(new RegExp("^[" + chars + "]+$", "g"), "");
        }

    </script>

HTML来源:

<asp:TextBox ID="txtspherical" runat="server" OnBlur="javascript:checkforvalidation();">
        </asp:TextBox>

答案 2 :(得分:0)

function validNumber(input){
    input=input.replace(/\s+/g," ").replace(/^\s+|\s+$/g,"");
    if( input.match(/\d+\.*\d*/i) ){
        input=input.match(/(\d+\.*\d*)/i)[1].replace(/\.$/i, "");
        if(!input.match(/\./i)) input+=".00";
        if(input.match(/\.(\d+)/i)[1].length<2) input+="0";
        return input;
    }else{
        return "0.00";
    }
}
相关问题