1

このコードを小数の検証に使用します。正常に機能していましたが、テキスト ボックスにアルファベットを入力できます。テキストボックスを終了すると、エラーメッセージだけが近くのテキストボックスに表示されます。アルファベットを押すと、テキストボックスでテキストボックスに入ることができません。これを行う方法は?

<asp:RegularExpressionValidator ControlToValidate="txtNumber" 
                    runat="server" ValidationExpression="^[1-9]\d*(\.\d+)?$"
                        ErrorMessage="Please enter only numbers">
                    </asp:RegularExpressionValidator>
4

2 に答える 2

4

を使用するだけでCompareValidator、正規表現を使用する必要はありません。

<asp:CompareValidator 
      ID="CompareValidator1" runat="server" ControlToValidate="TextBox1"
      ErrorMessage="Please enter a numberical value." ForeColor="Red"
      Operator="DataTypeCheck" Type="Integer">!
</asp:CompareValidator>
 <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

次を使用するだけで、サーバー上でこれを行うこともできますTryParse()

int x = 0;
bool valid = Int32.TryParse(TextBox1.Text, out x);
if(!valid)
   {
        //inform the user
   }
于 2012-10-23T11:05:40.450 に答える
1

Javascript の使用:

<asp:TextBox ID="TextBox2" onkeypress="AllowOnlyNumeric(event);" 
   runat="server"></asp:TextBox>

Javascript コード:

function AllowOnlyNumeric(e) {
    if (window.event) // IE 
    {
        if (((e.keyCode < 48 || e.keyCode > 57) & e.keyCode != 8) & e.keyCode != 46) {
            event.returnValue = false;
            return false;

        }
    }
    else { // Fire Fox
        if (((e.which < 48 || e.which > 57) & e.which != 8) & e.which != 46) {
            e.preventDefault();
            return false;

        }
    }
}
于 2012-10-23T11:20:50.347 に答える