2011-12-22 64 views
0

我写了一个简单的asp.net代码与asp.net所需的验证控件,问题是我只有一个提交按钮称为GO,并寻找一个下拉列表选择: 清除,提交,取消。asp.net必需的字段验证每个按钮动作调用

无论选择何种选项,都会触发所需的字段验证。

有没有一种方法来编写页面,以便只有当选定的值是Submit it validates?

<asp:TextBox runat="server" id="txtName" /> 
    <asp:RequiredFieldValidator runat="server" id="reqName" controltovalidate="txtName" errormessage="Please enter your name!" /> 
    <br /><br /> 


    <asp:DropDownList ID="dpAction" runat="server"> 
       <asp:ListItem>Submit</asp:ListItem> 
       <asp:ListItem Value="Reset">Reset</asp:ListItem> 
       <asp:ListItem>Cancel</asp:ListItem> 
      </asp:DropDownList> 
    &nbsp; 
      <asp:Button ID="btnAction" runat="server" onclick="btnAction_Click" Text="Go" 
       Width="40px" /> 
+0

你可以发布你的btnAction_Click的逻辑吗? – c0deNinja 2011-12-22 02:03:45

+0

它只是检查值是否==提交然后它会处理一些值并发送到电子邮件。 – user1091438 2011-12-22 02:06:37

回答

2

您可能必须使用自定义验证程序,并且如果您想要客户端验证,则需要为其编写客户端代码。

我假设你有一个文本框或“dpAction”设置为“提交”时需要的其他东西?

因此,例如,你会做这样的事情在你的标记

<asp:CustomValidator id="CustomValidator1" runat="server" 
    OnServerValidate="TextValidate" 
    ControlToValidate="TextBox1" 
    ErrorMessage="Text must be specified if Submit is selected"> 

,并在您的代码隐藏

protected void TextValidate(object source, ServerValidateEventArgs args) 
{ 
    args.IsValid = dpAction.SelectedValue == "Submit" && !String.IsNullOrEmpty(textbox1.Text); 
} 
+0

正确我有几个文本框,由asp.net所需的字段验证器进行验证。我没有写任何JavaScript,只是使用了asp.net中的一个。但事情是,点击按钮后就会触发,我不想验证所选的选项是否清除 – user1091438 2011-12-22 02:04:26

+0

此自定义验证器可以使用验证摘要以显示必填字段吗? – user1091438 2011-12-22 02:08:13

+0

是的。如果要根据上下文显示不同的消息,您可能需要在TextValidate方法中设置错误消息 – 2011-12-22 02:18:29

0

使用“必需的”属性。 其新的HTML 5

0

你应该为每个Validator设置ValidationGroup! 为您希望所有控件进行验证和按钮来触发验证:

和按钮必须具有相同的validaton组的验证!