【问题标题】:html: using buttons in forms witout actionhtml:在没有操作的情况下使用表单中的按钮
【发布时间】:2012-08-10 02:06:23
【问题描述】:

我将链接样式设置为按钮,并注意到链接操作被表单操作覆盖。所以取消按钮实际上会更新。有没有办法从按钮中轻松可靠地(在所有浏览器中)删除此行为,同时将其保留在表单元素中?还是我需要重新设置按钮的样式?


更新:

<form>
 <input type='text'>
 <a href="cancel"><button>cancel</button></a>
 <input type="submit">
</form>

现在a&gt;buttoninput(submit) 具有相同的操作


最终重新设计并删除了 button 标签

【问题讨论】:

  • 你能包含你的 HTML ...
  • 你能举个例子吗?据我所知,应该触发表单操作的唯一按钮是&lt;input type="submit"&gt;
  • “取消按钮实际上更新”是什么意思?
  • 是的,&lt;button&gt; 提交的动作先于链接的执行
  • 在这种情况下不需要额外的链接和按钮。这就是&lt;input type='reset'&gt; 的用途。它会重置您的表单,您可以连接到 reset 事件。

标签: html forms button


【解决方案1】:

很抱歉,如果我在这里弄错了,但我不完全确定我是否理解您的问题,因为取消按钮不应该提交您的表单,但是您使用的按钮不正确,这可能是您问题的根源。

我认为,如果您按照自己的方式进行操作,它们将无法在 IE 中工作:

<input type="button" value="Cancel" onClick="window.location='http://www.yoursite.com/cancellink'" />

如果您按照上述方式执行这些操作,则应该在所有浏览器中执行您想要的任何操作,除非 js 被禁用 - 希望这会有所帮助 您可以调用任何 js 函数来清除表单或任何您想要的,而不是链接到页面

【讨论】:

  • 虽然 js 不太可能被禁用,但让按钮在禁用时执行完全相反的操作似乎太冒险了。
  • 我同意如果是这种情况,但它不应该在没有 js 的情况下提交表单 - 它不应该做任何事情
【解决方案2】:

你需要设置按钮的类型,如果没有设置类型属性,默认情况下按钮作为表单内的提交按钮。

<a href="cancel"><button type="button">cancel</button></a>

【讨论】:

  • 为什么,谁知道 - MS 工程师?如何 - 按钮不执行任何操作
  • 我总是使用&lt;input type="button"&gt; 来减少混淆
  • 在 IE 中似乎是一个已知问题,请在此处查看解决方法expertsguide.info/2010/07/…
【解决方案3】:

由于链接的工作方式,当您单击&lt;a href="cancel"&gt; 时,它会尝试将浏览器导航到该资源。 (例如http://yoursite.com/cancel)。

如果您希望您的按钮执行一些 JS 操作,请删除 &lt;a&gt;。在这种情况下,这只是多余的。为&lt;button&gt; 设置您想要的样式。

如果您希望按钮导航到页面,请删除 &lt;button&gt; 并设置 &lt;a&gt; 的样式。

【讨论】:

  • 这就是我害怕不得不做的事情。
  • 您是否有不想这样做的原因?在链接中嵌套一个按钮没有多大意义......
  • 我使用模板进行快速原型制作。现在我已经设置了不使用按钮的链接样式,幸运的是大多数链接都是使用函数生成的(预计我将更改样式)所以这是一个快速的更改。我必须检查代码并替换我使用按钮标签的实例。
猜你喜欢
  • 2011-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-29
  • 2012-03-11
  • 1970-01-01
相关资源
最近更新 更多