没有回发的按钮?

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');",那么您可以使用函数的返回值truefalse。您只需要从 onclick 事件本身返回 something (它本身在执行之前被包装在一个函数中),或者它默认为true 天哪,我花了 3 个小时寻找“return false”!【参考方案2】:

type="button" 添加到您的&lt;button&gt; 标记中,如下所示:

<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" />

这不需要一个表格(所以你可以在没有表格的情况下使用它)并且你没有回发的问题。

希望对你有帮助

【讨论】:

以上是关于没有回发的按钮?的主要内容,如果未能解决你的问题,请参考以下文章

在jQuery中延迟/超时回发的方法?

带有 ASP.NET 按钮回发的 jQuery UI 对话框

在没有回发的情况下重置 ASP.NET 中的页面

重置会话超时而不在 ASP.Net 中进行回发

ASP SqlDataSource 更新 - 用于部分页面回发的 AJAX?

由 UpdatePanel 内 GridView 内的 LinkBut​​ton 触发的完整回发