我觉得我已经做了很多次这种情况,而且它通常都有效,所以我很明显错过了一些东西。
这是我的服务器端ASP.NET按钮:
<asp:Button ID="btnFoo" runat="server" Text="Foo" CssClass="button foo" OnClientClick="foo_Click();" />
在客户端上呈现的内容为:
<input type="submit" name="reallylongclientid" value="Foo" onclick="foo_Click();WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(reallylongclientidandpostbackoptions, false, false))" id="reallylongclientid" class="button foo">
没有惊喜。
令我惊讶的是,在我的JavaScript函数中:
function foo_Click() {
return false;
}
好的,所以还有更多的东西,但是我把它剪下来证明了一点。
当我单击按钮时,它会调用客户端函数,并返回false。
但它仍会回发到服务器,为什么?
我基本上想在点击按钮时执行此操作:
当然,我可以将其更改为客户端按钮(输入类型=“按钮”),并且手动在我想要时启动回发,但我不应该这样做。或者我应该吗?
答案 0 :(得分:18)
写return
语句,以便点击按钮时return false
不允许提交表单
<asp:Button ID="btnFoo" runat="server" Text="Foo" CssClass="button foo"
OnClientClick="return foo_Click();" />