У меня есть форма поиска с построителем запросов. Конструктор активируется кнопкой. Что-то вроде этого
<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"/>. Если пользователь вводит строку в поле выражения и нажимает клавишу ввода вместо нажатия кнопки отправки, отображается построитель запросов, когда ожидается, что поиск будет отправлен. Что дает?




Предполагается, что для отправки формы используется кнопка в форме HTML. Измените кнопку на input type = "button", и это должно исправить.
Или добавьте type = "button" к элементу кнопки.
сначала дайте 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;" />