javascript - 单击服务器上的按钮

标签 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 代码

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>

关于javascript - 单击服务器上的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11947210/

相关文章:

javascript - Visual Studio - 如何显示自动完成建议?

javascript - 通过回调强制异步打印顺序

c# - 使用 JSON.NET 将 JSON 反序列化为匿名对象

javascript - 仅使用 javascript 添加 onclick 事件

javascript - anchor 标记中的 onclick 事件在 IE 中不起作用

javascript - 尝试将 "var app"传递给函数

javascript - 如果 img src 为空,如何使用 javascript 删除 div

php - php 中是否有 SignalR ASP.NET 的替代方案(特别是 Laravel)

c# - 更新面板中的计时器

jquery - 为什么我的 checkbox.change 不起作用(jquery)?