1

ページに RequiredFieldValidators がたくさんあり、ErrorMessage="" をページではなく ModalPopupExtender に表示したいと考えています。そのため、[送信] をクリックしてもテキスト ボックスが入力されていない場合、ModalPopupExtender が画面に表示され、RequiredFieldValidator が配置されているページではなく、「テキスト ボックスが必要です」と表示されます。

これが私のコードの例です(ページ全体を投稿すると大きすぎます):

<form id="form1" runat="server">
<div class="container">
<div class="row">
        <div class="span3">
            <div class="control-group">
                <asp:Label ID="NameLbl" class="control-label required" runat="server" Text="Name"></asp:Label>
                <div class="controls">
                    <asp:TextBox ID="NameTxtBox" class="span3" runat="server"></asp:TextBox><span
                        class="help-block"><asp:RequiredFieldValidator ID="NameRFV" class="RFV" runat="server"
                            ErrorMessage="Name is Required" ControlToValidate="NameTxtBox"></asp:RequiredFieldValidator></span>
                </div>
            </div>
        </div>
         <div class="span3">
            <div class="control-group">
                <asp:Label ID="Email" class="control-label required" runat="server" Text="Email"></asp:Label>
                <div class="controls">
                    <asp:TextBox ID="EmailTxtBox" class="span3" runat="server"></asp:TextBox><span
                        class="help-block"><asp:RequiredFieldValidator ID="EmailRFV" class="RFV" runat="server"
                            ErrorMessage="Required" ControlToValidate="EmailTxtBox"></asp:RequiredFieldValidator></span>
                </div>
            </div>
        </div>
      </div>
     <asp:Button ID="Button1" class="btn btn-primary" runat="server" Text="Submit"
                OnClick="Submit_Click" />
     </div>
    </form>

    <asp:scriptmanager id="ScriptManager1" runat="server">
            </asp:scriptmanager><asp:ModalPopupExtender ID="ModalPopupExtender1" cancelcontrolid="btnCancel"
targetcontrolid="Button1" popupcontrolid="SavePopup" 
backgroundcssclass="ModalPopupBG" runat="server">
            </asp:ModalPopupExtender>
            <asp:panel id="SavePopup" style="display: none" runat="server">
            <div class="ModalPopup">
            <h4>Fields Missing!</h4>
                <p>Name is Required, Email is Required.</p>
                <input id="btnCancel" type="button" value="Close" /></div>
         </asp:panel>

これは、ユーザーが送信ボタンを押したときに、どのフィールドが空であるかを示すこのようなモデルポップアップが表示されるはずのモックアップです。

ここに画像の説明を入力

これを達成する方法についてのアイデアはありますか? modalpopupextender 内に requiredfieldvalidators を保持しますか? その後、modalpopupextender がアクティブになるかどうかを判断する方法を教えてください。

4

2 に答える 2

0

このようなものを使用できます。

<script type = "text/javascript"> function isPageValid() {
  var validated = Page_ClientValidate('YourGroupName');
  if (validated) {
    var mdlPopup = $find('myModalPopup');
    if (mdlPopup) {
      mdlPopup.show();
      return false;
    }
  }
} </script>

于 2015-10-07T17:27:31.367 に答える