即使在验证组中,OnClientClick for按钮仍在运行

时间:2012-11-29 19:10:40

标签: asp.net

我有一个位于验证组中的按钮,当页面上的任何文本框未填写时,onClick将不会像预期的那样运行,但OnClientClick将会运行。

 <asp:Button ID="btnSend" runat="server" Text="Send" ValidationGroup="send" OnClick="sendNow"
    OnClientClick="document.getElementById('SendingMessage').style.visibility = 'visible'" />

有没有办法阻止onclientclick像使用验证组的onClick一样运行?

1 个答案:

答案 0 :(得分:1)

onclick是服务器端事件。 onclientclick是客户端(javascript)操作。在这种情况下,单击按钮,因此将执行onclientclick。如果验证通过,浏览器将发布到表单,onclick事件将执行。如果验证失败,则根据验证失败的位置,将发生以下两种情况之一。

如果客户端上的验证失败,则永远不会向服务器发送请求。如果服务器上的验证失败而不是将表单发布到服务器但输入验证失败并且onclick事件未执行。

在您的情况下,您需要在onclientclick事件中添加一些客户端代码,以验证用户的输入。如果验证返回true,则继续运行脚本。如果验证失败则不。应该有一种方法可以绑定到客户端上的webforms验证。我不知道怎么做。