为啥任何 html 按钮都会导致 aspx 页面中的回发?

Posted

技术标签:

【中文标题】为啥任何 html 按钮都会导致 aspx 页面中的回发?【英文标题】:Why any html button cause postback in aspx page?为什么任何 html 按钮都会导致 aspx 页面中的回发? 【发布时间】:2013-08-02 10:22:24 【问题描述】:

我在我的 SharePoint 网站上创建了 .aspx 页面并插入到页面 html 按钮中。

示例

    <PublishingWebControls:editmodepanel PageDisplayMode="Display" runat="server" SuppressTag="True">
...
<button>Click Me!</button>
...
</PublishingWebControls:editmodepanel>

每次我点击“点击我!”回发发生。这不是我想要的行为,但我找到了一种不引起回发的方法。我将javascript代码添加到onclick属性&lt;button onclick='return false;'&gt;Click Me!&lt;/button&gt;

我的问题是,为什么会出现回发,即使按钮不包含type="submit" 属性?

我还检查了母版页,其中包含 &lt;form runat="server"&gt; 并包装了所有内容,也没有 action="page.aspx" 属性。

【问题讨论】:

每个浏览器对按钮标签的解释不同。您可以使用&lt;input type="button" value="Click Me!" /&gt;,它也不应该导致回发。 @Jmoreland91 你应该写这个作为答案。我会投赞成票。 【参考方案1】:

我知道这是一篇旧帖子。 @Dmytro 的帖子指向正确的方向,但不是确切的答案。为了防止回发,您需要使用按钮标签的 type 属性。即

&lt;button type="button"&gt;Click Me!&lt;/button&gt;

【讨论】:

【参考方案2】:

查看此链接,http://www.w3schools.com/tags/tag_button.asp 页面上有一个注释,上面写着,不同的浏览器可以使用不同的默认按钮类型,如果你不自己指定的话。好像您的浏览器使用“提交”。

【讨论】:

我已经调试我的应用程序几个小时了,这神奇地解决了所有问题!你救了我的朋友!

以上是关于为啥任何 html 按钮都会导致 aspx 页面中的回发?的主要内容,如果未能解决你的问题,请参考以下文章

从html覆盖到aspx页面,但是菜单消失了,为啥?

如何将 Paypal 购买按钮添加到 aspx 页面中的项目?

每当我在任何按钮(即 UISegmentedControl 按钮)之外单击时,都会单击该按钮。谁能告诉我为啥会这样?

我的支付宝按钮不会链接到贝宝。它只刷新页面,为啥?

aspx点击按钮时submit至另一页面

aspx 按钮打开新网页