0

我正面临按钮问题。

我希望进行客户端验证(比如在数据列表中最多选择 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;
  }  
}

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

4

1 回答 1

4

您现在使用的控件是 HtmlButton,它不适合您尝试执行的操作,因为您onclick覆盖了回发所需的客户端代码。

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

将标记更改为此,它应该可以工作:

<asp:button OnClientClick="return ValidateSelection();" id="btnSubmit" runat="server" OnClick="btnSubmit_Click" Text="Submit"></asp:Button>
于 2012-08-14T07:43:06.150 回答