1

我正在开发一个网站(ASP.NET使用 C# 的 Webform),其中有一个<button>元素。

这是代码片段:

<a href="ThisPage.aspx" ID="myButtonID" runat="server">
    <button>Configure new trip</button>
</a>

当我使用 Firefox 或 Chrome 时,这段代码会在这个ThisPage.aspx. 这就是我想做的,其实。

问题是当我使用 Opera 时,相同的代码会执行“POST”。有谁知道我应该怎么做才能使这个按钮使用 Opera 以相同的方式工作?

4

4 回答 4

5

可能是因为 FF/Chrome 处理标签上的点击,<a />而 Opera 处理标签上的点击<button />

您正在寻找的(我猜)是将<a />标签呈现为按钮吗?在这种情况下,看看这个关于如何<a />像按钮一样设置标签样式的很好的教程

您所做的在某种程度上类似于将文本框添加到锚标记,即语义错误。

于 2009-10-19T11:34:36.913 回答
0

我猜它在表单标签内?

如果是这样,请尝试将表单的方法设置为“get”。

于 2009-10-19T11:31:47.027 回答
0

如果您没有执行任何 AJAX 操作,并且单击该按钮预计会导航到“ThisPage.aspx”,那么我会考虑设置<a>元素的样式 - 正如@veggerby 所建议的那样 - 并删除这些<button> </button>元素。

但是,这可能会让用户感到困惑,他们可能不希望表单中的按钮成为导航元素。我倾向于保持表单及其控件在视觉上与页面上的其他元素分开 -<fieldset>也许使用 .

于 2009-10-19T11:43:10.757 回答
0

Firefox/Chrome 如何提交“GET”?有参数吗?如果您想链接到,ThisPage.aspx那么只需在没有按钮的情况下进行操作。

表单可以是 GET 或 POST,但不能同时是两者。因此,如果按钮在表单内,它将始终从表单提交数据,并且应该使用表单上设置的任何方法。

也许您可以将实际的 HTML 输出而不是 ASP 代码发布到浏览器?我有一种感觉,您可能正在生成一个表单中的表单。在这种情况下,解决方案是尽可能将表格分开。

于 2009-10-19T12:05:16.610 回答