【问题标题】:Required field validator firing for other control其他控件的必需字段验证器触发
【发布时间】:2012-06-04 05:50:22
【问题描述】:

我有一个用于修改客户信息的页面,我允许页面上有两个文本框用于每条客户信息,所以如果客户有5条信息,那么我的页面将有10个文本框,一个用于显示旧值一个用于输入新值。所有具有原始信息的文本框都是可见的,然后根据用户选择的哪一列来修改该列文本框是可见的。

用于输入新值的所有文本框都有必填字段验证器。我们允许单个字段修改。我面临的问题是,假设用户选择修改用户的指定字段并且指定字段没有任何值,然后其他一些字段假设组织名称没有值,只有选定的字段相应的文本框将可见,当我尝试提交信息时,它给我的错误是需要组织名称,即使组织名称的新文本框不可见,关于为什么会发生这种情况的任何想法?

编辑:

<td align="right"><span>Designation:</span></td>
<td>
    <asp:TextBox runat="server" ID="ModifyCustomerByCategorytxtDesignation"
        class="ModifyCustomerByCategoryTextbox"></asp:TextBox>
</td>
<td>
    <asp:TextBox runat="server" ID="ModifyCustomerByCategorytxtNewDesignation"
        class="ModifyCustomerByCategoryTextbox"></asp:TextBox>
    <asp:RequiredFieldValidator ValidationGroup="Group6"
        ControlToValidate="ModifyCustomerByCategorytxtNewDesignation" runat="server"
        EnableClientScript="true" Display="Dynamic" 
        ErrorMessage="The Designation field is required." Text="*">
    </asp:RequiredFieldValidator>
</td> 

【问题讨论】:

  • @IrishChieftain 我发布了标记。

标签: asp.net requiredfieldvalidator


【解决方案1】:

如果您只允许修改单个字段,则为每个字段添加一个单独的按钮,并使其与该字段验证器共享一个唯一的ValidatinGroup(您的问题是因为它们都共享一个ValidatinGroup,所以他们所有都得到验证,可见与否)。

【讨论】:

    【解决方案2】:
     <asp:TextBox runat="server" ID="ModifyCustomerByCategorytxtDesignation"
        class="ModifyCustomerByCategoryTextbox"></asp:TextBox>
     <asp:CustomValidator ID="cvmodify" runat="server" 
        ClientValidationFunction="modify" CssClass="validators" ErrorMessage="*" 
            Display="Dynamic" SetFocusOnError="True" ></asp:CustomValidator>
     <td>
     <asp:TextBox runat="server" ID="ModifyCustomerByCategorytxtNewDesignation"
        class="ModifyCustomerByCategoryTextbox"></asp:TextBox>
     <asp:CustomValidator ID="cvModify" runat="server" 
        ClientValidationFunction="modify" CssClass="validators" ErrorMessage="*" 
            Display="Dynamic" SetFocusOnError="True" ></asp:CustomValidator>
    
    
     <script language="javascript" type="text/javascript">
       function modify(oSrouce, args) {
         var myTextBox = document.getElementById('<%= ModifyCustomerByCategorytxtDesignation.ClientID %>');
         var myTextBox = document.getElementById('<%= ModifyCustomerByCategorytxtDesignation.ClientID %>');
    
                    if (myTextBox.value) {
                        if (myTextBox.value == "")
                            args.IsValid = false;
                        else
                            args.IsValid = true;
                    }
                }
     </script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-27
      • 1970-01-01
      • 2012-12-03
      • 2011-02-24
      • 1970-01-01
      • 2013-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多