BUTTON ONCLICK ONSERVERCLICK

时间:2012-08-14 06:55:21

标签: javascript asp.net onclick

我遇到按钮问题。

我想要进行客户端验证(比如在数据列表中最多只选择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 CODE

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;
  }  
}

我想我搞乱了格式化。请原谅我。

1 个答案:

答案 0 :(得分:4)

您正在使用的控件HtmlButton不适合您正在尝试的操作,因为您的onclick会覆盖回发所需的客户端代码。

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

将标记更改为此标记,它应该有效:

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