【问题标题】: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');

标签: javascript asp.net html


【解决方案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" />
    

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

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-09
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多