3

我的页面上有一个动态创建的输入按钮,每次按下它时,它都会为电子邮件地址中的空白字段触发RequiredFieldValidator。有没有办法覆盖它?

输入代码:

<input class=\"hledat\" id=\"searchbutton\" type=\"image\" src=\"search-button.gif\" value=\"{0}\" onclick=\"search('{1}');\" onkeypress=\"search('{1}');\"/>"

验证器代码:

<asp:TextBox runat="server" ID="txtEmail" ClientIDMode="Static" Width="98%" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="txtEmail" ErrorMessage="email"
    Display="dynamic" ValidationGroup="newsletter" />
<asp:RegularExpressionValidator runat="server" ControlToValidate="txtEmail" ErrorMessage="email"
    ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" Display="dynamic"
    ValidationGroup="newsletter" />
4

3 回答 3

1

通过编写runat="Server"属性使其成为服务器端按钮,并根据您的要求创建CausesValidation="true|false"。如果你做假,它不会验证。如果它解决了问题,请告诉我

于 2012-04-17T08:29:31.740 回答
1

我的页面上有一个动态创建的输入按钮,每次按下它时,它都会为电子邮件地址中的空白字段触发RequiredFieldValidator。有没有办法覆盖它?

HtmlButton.CausesValidation 属性

标记

<button causesvalidation="false" /><button ID="StateQueryButton" CausesValidation="False" runat="server"> Submit </button>


是的,我想让它回发

HtmlButton.OnServerClick 方法

代码背后

protected void FancyBtn_Click(object sender, EventArgs e)
{  

}

标记

<button causesvalidation="false" /><button ID="StateQueryButton" CausesValidation="False" OnServerClick=" FancyBtn_Click" runat="server" > Submit </button>

于 2012-04-17T09:11:37.927 回答
0

尝试将runat="server"添加到输入按钮,如图所示:

*注意* runat="server"。虽然 asp:button 的呈现方式可能类似,但如果您真正想要的是 HTML 按钮输入,则可以使用它。是的,ASP.NET 将在服务器端获取价值。**

<input type="button" runat="server" id="btnTest" value="change" onclick="doPostBack('btnTest', '');"/> 
于 2012-04-17T08:29:36.067 回答