没有回发的按钮?
Posted
技术标签:
【中文标题】没有回发的按钮?【英文标题】:button with no postback? 【发布时间】:2011-05-05 00:21:15 【问题描述】:我有一个 asp.net 页面,其中有一个按钮,我用它来执行 javascript...但是在 JavaScript 运行之后页面重新加载(回发)我怎样才能避免这种情况?
<button onclick="printElement('content');">Print</button>
【问题讨论】:
我试图从 printElement 函数中返回 false,但没有任何效果.. 您是否在调用 printElement 之前添加了返回? 在 printElement 函数中放置 return false 似乎并没有改变任何东西,但是像你发布的 2 一样放置它似乎很有效,非常感谢! 如果printElement返回true而不是简单的return printElement('content');
【参考方案1】:
你需要使用return false
<button onclick="printElement('content');return false">Print</button>
【讨论】:
+1 - 这很好用。我只是想补充一点,把“return false;”在您的 javascript 函数中不起作用,它必须出现在 onclick 声明中的方法之后。我希望相反的情况是正确的,但事实并非如此:( 经过几天的努力,终于把它放在一个银托盘上送给我们。谢谢 请注意,如果您使用onclick="return printElement('content');"
,那么您可以使用函数的返回值true
或false
。您只需要从 onclick 事件本身返回 something (它本身在执行之前被包装在一个函数中),或者它默认为true
。
天哪,我花了 3 个小时寻找“return false”!【参考方案2】:
将type="button"
添加到您的<button>
标记中,如下所示:
<button type="button" onclick="printElement('content');">Print</button>
This answer 解释了这种行为。
【讨论】:
难以置信。我缺少“type=button”部分,没有它,“return false;”只是没有效果。感谢您的提示! 这是正确答案。我不明白为什么另一个答案得到了这么多的赞成。 另外,return false
什么也不做,也不需要。 type=button
是必不可少的。【参考方案3】:
如下改变你的点击事件:
<button onclick="printElement('content');return false;">Print</button>
【讨论】:
【参考方案4】:如果您不需要回帖,则应使用 html 按钮。
在这种情况下,您不需要重写该行为来避免回发,并且加载起来更轻松(服务器不需要工作来渲染 HTML)
【讨论】:
HTML 按钮无法自行回复帖子。可能您使用的是 asp.net 版本。 如果它是一个 asp 按钮,我会写 【参考方案5】:您应该只使用输入按钮:
<input type="button" onclick="printElement('content')" value="Print" />
这不需要一个表格(所以你可以在没有表格的情况下使用它)并且你没有回发的问题。
希望对你有帮助
【讨论】:
以上是关于没有回发的按钮?的主要内容,如果未能解决你的问题,请参考以下文章
带有 ASP.NET 按钮回发的 jQuery UI 对话框