-5

クライアントのボタン クリック イベントで、入力値がすべて数字 (0 ~ 9) かどうかを確認する JavaScript 関数が 1 つ必要です。さらに、もう 1 つの基準は、ラジオ ボタン オプションにあります。ユーザーが YES を選択すると、数字入力のみが許可されます。NO の場合、任意の文字を入力します。

数値をチェックしていて小数点を許可している投稿を見つけましたが、私にとっては、小数点やダッシュなどを入力することは許可していません。

有効な文字は 0 から 9 までの数字で、カウントは 10 でなければなりません (長さを確認できます)。


Example of txtInput.Text
1234567890 -- return true
9781234567 -- return true
12.4567890 -- return false
123-567890 -- return false
123456789X -- return false

Code:
        function CheckFormInput() {
            var x = document.getElementById("<%#txtInput.ClientID%>").value;
            if (x != "") {
                if (document.getElementById("<%#rbtnYes.ClientID%>").checked) {
                    if (CheckInput(x)) return true;
                    else {
                        alert("Invalid Input!");
                        return false;
                    }
                }
                else {
                    return true;
                }
            }
            else {
                alert("Blank not allowed!");
                return false;
            }
        }

        function CheckInput(input) {
            //function to check length 10 & all chars in digit (0 to 9, no space, no dash, no decimal)
            if (document.getElementById("<%#rbtnYes.ClientID%>").checked) {
                if (input.length == 10) {
                // *** continue to check all in digit ***
                    return true;
                }
                else {
                    return false;
                }
            }
        }

html:-
<asp:Button ID="btnAddFile" runat="server" Text="Add Files" OnClientClick="return CheckFormInput()"  OnClick="btnAddFile_Click" />

アドバイスをいただければ幸いです。前もって感謝します!

4

2 に答える 2

1
if( /^\d+$/.test(val) && val.length == 10){

alert("digits only, 10 chars long");

}

また

 if(!isNaN(parseInt(val)) && val.length == 10){
alert("digits only, 10 chars long");
}

html:

<input type="text" maxlength="10">  
于 2013-11-01T08:17:25.923 に答える
1

これを使って

  <input type="text" pattern="[0-9]{10}">  
于 2013-11-01T08:15:12.923 に答える