0

これは可能ですか?

RegularExpressionValidator を使用して 2 つのテキスト ボックスがあり、「,」をチェックしています。カンマがない場合は、テキスト ボックスをクリアして、テキスト ボックスの横にエラー メッセージを表示します。

これが不可能な場合、入力されている値の「、」をチェックするにはどうすればよいですか?

ありがとうございました

4

2 に答える 2

2

これが解決策です:

<asp:TextBox ID="tb1" runat="server" />
<asp:RegularExpressionValidator ErrorMessage="Comma is required" ControlToValidate="tb1" runat="server" ValidationExpression=".*,.*" ForeColor="Red"/>

編集: 検証が失敗した場合、クリア テキスト ボックスの JavaScript 関数を含めます。

    <asp:TextBox ID="tb1" runat="server" OnChange="tbOnChange();" />
    <asp:RegularExpressionValidator ID="tbVal" ErrorMessage="Comma is required" ControlToValidate="tb1" runat="server" ValidationExpression=".*,.*" ForeColor="Red" />
    <script type="text/javascript">
        function tbOnChange() {
            if (typeof (Page_Validators) == "undefined") return;
            if (!tbVal.isvalid) {
                var tb1 = document.getElementById('tb1');
                tb1.value = '';
            }
        }
    </script>

よろしく

k

于 2013-11-08T15:02:26.267 に答える
1

私があなたの質問を正しく理解していれば、カンマの存在を確認し、検証が失敗した場合はテキスト ボックスをクリアしてください。

  1. コンマの存在を確認するには、ValidationExpression: ". ,. "を作成します。

    <asp:RegularExpressionValidator runat="server" id="valRgx" ControlToValidate="txtBox" ValidationExpression=".*,.*" ErrorMessage="Must contain a comma" />

  2. テキスト ボックスをクリアする必要があるかどうかを確認するには、完全なポストバックを想定して、ページの prerender イベントをオーバーライドし、検証が失敗した場合はテキスト ボックスをクリアします。

すなわち

protected void Page_PreRender(object sender, EventArgs e)
{
    if (!NameOfValidator.IsValid) TextBoxName.Text = string.Empty;
}

編集2:

F4 を単独で受け入れるか、バーコード パターンを受け入れるかについての質問に答えるには:

<asp:RegularExpressionValidator runat="server" id="valRgx" ControlToValidate="txtBox" ValidationExpression="(F4)|(.*,.*)" ErrorMessage="Must contain a comma" />

于 2013-11-08T14:55:38.300 に答える