0

私の問題:

1) ポストバックは常に発生します

2) requiredFieldValidator がクライアント側で有効かどうかを確認する正しい方法ですか?

私が欲しいもの:

ユーザーが表示されているクリック ボタンをクリックします。

これにより isValid() が呼び出されます。

ページが有効な場合は、サーバー側関数を呼び出します。

ページが無効な場合は警告します。

<asp:Button ID="btnSubmit" runat="server" Text="Submit" ToolTip="Submit" CausesValidation="true" CssClass="blueNew buttonNew" 
                OnClientClick="isValid(); return false;" />

<div style="display: none;">
    <asp:Button ID="hiddenBtnSubmit" runat="server"  OnClick="btnSubmit_Click" />
 </div>

 <script>
function isValid() {
    if (Page_IsValid) {
        var button = document.getElementByID("<%=hiddenBtnSubmit.ClientID%>");
        button.click();
    } else {
        if (!reqFirstName.IsValid) {
            alert("First name is invalid");
        }
    }      
}
 </script>
4

1 に答える 1

2

いいえ、次のようにバリデーターを追加するだけです。

<asp:TextBox runat="server" ID="txtEmail" />
<asp:RequiredFieldValidator
    ErrorMessage="The email is required"
    ToolTip="The email is required"
    Text="(*)"
    ControlToValidate="txtEmail"
    runat="server" />
<asp:ValidationSummary runat="server" DisplayMode="BulletList" ShowMessageBox="true" />

また、フォームを送信しようとするたびにクライアントで検証が実行されるため、検証を手動で実行する必要はありません。

出力は次のようになります。

ここに画像の説明を入力

編集 1

<script type="text/javascript">
    function validate() {
        var val = Page_ClientValidate('');
        if (!val) {
            for (i = 0; i < Page_Validators.length; i++) {
                if (!Page_Validators[i].isvalid) {
                    $("#" + Page_Validators[i].controltovalidate).qtip();
                }
            }
        }

        return val;
    }
</script>

<asp:Button OnClientClick="return validate();" Text="Post" runat="server" />
于 2012-07-11T23:32:05.627 に答える