我遇到按钮问题。

我希望发生客户端验证(例如,在数据列表中最多选择4个复选框)。

我使用了标记的INPUT TYPE =“ BUTTON” RUNAT =“ SERVER”样式。并将Onserverclick =“ someservermethod”正常工作。

我写了一个Validate()并添加了onclick =“ return validate();”到上面的HTML标记,并正在考虑是否返回false,则我的服务器端代码someservermethod()将无法执行,并且按预期工作

但是当我返回true时,我认为它将触发我的someservermethod(),但是它不起作用。有什么想法为什么它不起作用?

按钮下方的HTML标记

button onclick="return ValidateSelection();" type="button" id="btnSubmit"
                runat="server" onserverclick="btnSubmit_Click"


JAVASCRIPT代码

function ValidateSelection()
{
  if(good)
  {
    // I expect that my server side code btn_Submit would have got called. But
    // it doesn't get called.
    return true;
  }
  else
  {
    //This works great. Not calling the server side method for the button
    alert('something happened');
    return false;
  }
}


我想我搞砸了格式。对不起。

最佳答案

您现在使用的控件是HtmlButton,它与您要执行的操作不匹配,因为您的onclick会覆盖回发所需的客户端代码。

您需要的是Button控件,它确实支持覆盖客户端onclick并仍然照常执行回发。

将标记更改为此,它应该起作用:

<asp:button OnClientClick="return ValidateSelection();" id="btnSubmit" runat="server" OnClick="btnSubmit_Click" Text="Submit"></asp:Button>

09-25 20:30