0

次のような番号を取得するようにユーザーコントロールを作成したいと思います。

125.00
125
125.27
125.20
1231545.25
2566.66

マスクテキストボックスを試してみましたが、長さは何でもかまいません。私は次のような番号を受け入れるJavascriptでテキストボックスを使用しました: ここをクリックしてください

これにJavascriptプラグインが利用できる場合は、私に知らせてください。または、価格形式の値を受け入れるコードを教えてください。

入力時に数字と小数点以下2桁のみを挿入するようにユーザーを制限します。

数値が適切にフォーマットされていない場合は、テキストの変更後に数値を切り取ってフォーマットします。

125.2の場合は125.20、125の場合は125.00または135156、次に135156のように

インターネットで検索しましたが、このためのプラグインまたはスクリプトが見つかりませんでした。

私はnumeric.jsのようなプラグインを持っていますが、小数点以下のスペースを制限していません。

利用可能なJavascriptがある場合は投稿してください。

入力された値をチェックするための検証は行いたくありません。制限付きの値を受け入れたい。

私を助けてください。

4

3 に答える 3

1

Ajax ControlToolkitMaskedEditコントロールを使用できます。

MaskedEditは、入力可能なテキストの種類を制限するためにTextBoxコントロールにアタッチするASP.NETAJAXエクステンダーです。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"/> 

作業デモを参照してください

于 2012-09-25T09:57:43.287 に答える
0

私も同じ問題を抱えています。このコードは私の問題を解決しました。この解決策はまさにあなたが望むものです。10進数のフォーマットだけでなく、空白も削除します。これを試してみてください。私の状態では、ユーザーに「+」または「-」の入力を許可していたので、この検証もチェックします。

<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>
于 2012-09-25T10:15:35.207 に答える
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";
    }
}
于 2012-09-28T18:15:19.720 に答える