我有一个查询生成器搜索表单。 建设者通过按钮激活。 像这样的事情
<h:form id="search_form">
<h:outputLabel for="expression" value="Expression"/>
<h:inputText id="expression" required="true" value="#{searcher.expression}"/>
<button onclick="openBuilder(); return false;">Open Builder</button>
<h:commandButton value="Search" action="#{searcher.search}"/>
</h:form>
其结果是HTML既具有<button/>
和<input type="submit"/>
形式。 如果用户输入一个字符串到表达领域,并按下ENTER键,而不是点击提交按钮,当预期的行为是搜索提交显示查询生成器。 是什么赋予了?
在HTML形式的按钮被假定为被用于提交表单。 更改按钮输入类型=“按钮”,并且应该修复它。
备选地,添加类型=“按钮”按钮元件。
作为第一,举一个ID搜索按钮。 然后,在文本框,你可以拦截客户端事件的onkeydown,有这样的(JavaScript)的功能:
function KeyDownHandler(event)
{
// process only the Enter key
if (event.keyCode == 13)
{
// cancel the default submit
event.returnValue=false;
event.cancel = true;
// submit the form by programmatically clicking the specified button
document.getElementById('searchButtonId').click();
}
}
我料斗中我帮你。
如果在表单中的单个输入字段 ,许多浏览器自动提交表单的时候了输入键击。
尝试
- 添加另一个输入字段。 通过其样式,隐藏它,所以它是不可见的。 (例如,
<input type="text" name="bogusField" style="display: none;" />
- 块中的回车键形式JavaScript事件处理程序中提交行为(例如, 在这里或在这里 )。 更妙的是,使用GUI工具包,可能与此(例如,GWT)帮助