【发布时间】:2012-02-17 04:49:57
【问题描述】:
我有一个围绕多个输入的 <form> 元素:
<form>
<div class="tr" id="widget306">
<div class="td col-grab">
<button type="button" class="button grab formwidget" id="widget611">m</button>
</div>
<div class="td col-name">
<input type="text" name="name" value="target volume profile 1" id="widget607" class="formwidget textbox">
</div>
<!-- ... etc ... -->
</div>
</form>
当用户在关注一个元素时按下回车键时,我想在表单上触发一个提交事件(包装在<form> 标签中的输入元素的标准行为),但是当我按下回车键时,什么也没有发生(@987654321 @)。如果我删除了除一个输入元素之外的所有元素,则代码可以正常工作,并且我会得到按 Enter 键并触发表单提交的预期行为 (fiddle)。
在我有多个表单的第一个示例中,如何获得所需的行为(按 Enter 提交表单)?
注意:我在 Safari 5.1、Chrome 17、Firefox 9 和 IE 9 中发现了同样的行为。
澄清:我知道我可以扔一些 Javascript,但我想只用标记来解决它。
更新:正如你们中的一些人有帮助地指出的那样,我可以通过添加 <input type=submit> 来获得所需的行为。问题是我不希望用户看到提交按钮。我不能只将它的display 设置为none,因为当按下返回时浏览器不会提交,所以我从 QUnit 中借用并设置以下内容:
HTML:
<input type=submit class=hide-me />
CSS:
.hide-me {
position: absolute;
left: -10000px;
top: -10000px;
}
【问题讨论】:
-
您在任何地方都没有任何看起来像
<input type="submit">的按钮。 -
好点子,出于某种原因,即使我不想要提交按钮,我也需要它来实现按输入提交功能。