1

テキストボックスを検証する必須フィールドバリデーターを使用しており、送信ボタンをクリックすると確認を求めなければならず、Javaスクリプトのconfirm()関数を使用しています。問題は、確認ボックス ページのポストバックで [OK] を押すと、テキスト ボックスを空のままにしたときに必須フィールド バリデーターがページを停止しないことです。stackoverflow からの投稿を読んだ後、カスタム バリデーターを使用してページを停止しましたが、ここにコードはありませんでした。

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="TextBox1" ValidationGroup="one" runat="server" ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
    <asp:TextBox ID="TextBox1" runat="server" ValidationGroup="one"></asp:TextBox>
    <asp:Button ID="Button1" runat="server" Text="Button" 
        OnClientClick="validate();"  ValidationGroup="one" onclick="Button1_Click"/>
    <asp:CustomValidator ID="CustomValidator1" ValidateEmptyText="true" runat="server" ValidationGroup="one" ErrorMessage="CustomValidator"></asp:CustomValidator>

    <script type='text/javascript'>   
           function validate() {
            var cv = document.getElementById('MainContent_CustomValidator1');
            if (cv) {
                cv.isValid = confirm('are you sure want to update record ?');
            }
     }  </script>
4

4 に答える 4

1

このコードを試して、Page_ClientValidate を使用してください

 <asp:Button ID="Button1" runat="server" Text="Button" 
        OnClientClick="Javascript:if(Page_ClientValidate('one')){return validate();}"  ValidationGroup="one" onclick="Button1_Click"/>
于 2013-03-05T12:08:06.797 に答える
1
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="TextBox1" ValidationGroup="one" runat="server" ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
    <asp:TextBox ID="TextBox1" runat="server" ValidationGroup="one"></asp:TextBox>
    <asp:Button ID="Button1" runat="server" Text="Button" 
        OnClientClick="return validate();"  ValidationGroup="one" onclick="Button1_Click"/>
    <asp:CustomValidator ID="CustomValidator1" ValidateEmptyText="true" runat="server" ValidationGroup="one" ErrorMessage="CustomValidator" ClientValidationFunction="TextBox1Client"></asp:CustomValidator>

 <script type='text/javascript'>   
        function validate() {
          if(confirm('are you sure want to update record ?')){
          return true;
          }
          else
          {
          return false;
          }
       }
//you need to add a custom validot client function also  
       function TextBox1Client(sender, args) {
       //write your custom code here
        args.IsValid = false;
        //OR
        args.IsValid =true;
       }
    </script>
于 2012-05-17T10:44:18.067 に答える
0

このようにコードを修正してください

if(confirm('are you sure want to update record ?')==false){
  return false;
}

ありがとう。

于 2012-05-17T10:41:08.830 に答える
0

JavaScript では大文字と小文字が区別されます。次を試してください。

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="TextBox1" ValidationGroup="one" runat="server" ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
<asp:TextBox ID="TextBox1" runat="server" ValidationGroup="one"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" 
    OnClientClick="validate();"  ValidationGroup="one" onclick="Button1_Click"/>
<asp:CustomValidator ID="CustomValidator1" ValidateEmptyText="true" runat="server" ValidationGroup="one" ErrorMessage="CustomValidator"></asp:CustomValidator>

<script type='text/javascript'>   
       function validate() {
        var cv = document.getElementById('MainContent_CustomValidator1');
        if (cv) {
            cv.IsValid = confirm('Are you sure want to update record?');
        }
 }  </script>

IsValid の i を大文字にしませんでした。

于 2013-11-24T16:40:20.487 に答える