我有一个 asp 按钮。它是服务器端,所以我只能向登录用户显示它,但我希望它运行一个 javascript 函数,而且当它是 runat="server" 时,它似乎总是调用回发事件。
我还有一个<input...
没有在服务器上运行的常规按钮 ( >),它工作正常......
我怎样才能让这个按钮只运行 javascript 而不是回发?
我有一个 asp 按钮。它是服务器端,所以我只能向登录用户显示它,但我希望它运行一个 javascript 函数,而且当它是 runat="server" 时,它似乎总是调用回发事件。
我还有一个<input...
没有在服务器上运行的常规按钮 ( >),它工作正常......
我怎样才能让这个按钮只运行 javascript 而不是回发?
完成后让您的 javascript 返回 false。
<asp:button runat="server".... OnClientClick="myfunction(); return false;" />
YourButton.Attributes.Add("onclick", "return false");
或者
<asp:button runat="server" ... OnClientClick="return false" />
您可以使用 jquery 单击操作并使用preventDefault()函数来避免回发
<asp:button ID="btnMyButton" runat="server" Text="MyButton" />
$("#btnMyButton").click(function (e) {
// some actions here
e.preventDefault();
}
考虑一下。
<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequest);
function BeginRequest(sender, e) {
e.get_postBackElement().disabled = true;
}
</script>
其他人是对的,您需要回调返回 false;但是我想补充一点,通过设置 onclick 是一种丑陋的旧做事方式。我建议阅读有关unobtrusive javascript 的内容。使用像jQuery这样的库可以让你的生活更轻松,而且 HTML 与你的 javascript 的耦合更少(现在Microsoft 支持jQuery !)