Клавиша Enter Нажмите как «Отправить в JSF» - PullRequest
2 голосов
/ 10 марта 2010

Как заставить Enter Key Press вести себя как Submit в JSF. Это работает с InputBoxes; но не с полями вводаSecret

Ответы [ 6 ]

3 голосов
/ 30 мая 2012

Если вы хотите нажать клавишу ENTER вместо отправки в любой форме, то здесь мы должны добавить атрибут defaultcommand в тег af: form и дать идентификатор кнопки отправки в качестве значения. Пример кода для этого

<af:form id="f1" defaultCommand="cb1">
<af:outputText value="User Name" id="usename"/>
          <af:inputText value="#{BackingBean.userName}" id="uname" />
          <af:outputText value="Password" id="pword"/>
          <af:inputText value="#{BackingBean.password}" id="paword" secret="true"/>
          <af:commandButton text="Submit" action="#{BackingBean.method}" id="cb1" />
</af:form> 
3 голосов
/ 10 марта 2010

Я не видел эту проблему раньше. Вероятность того, что это поведение зависит от браузера, невелика. Попробуйте в разных браузерах исключить одно и другое (IE6 / 7/8, FF, Safari, Chrome и т. Д.). Вероятность выше, что это вызвано (плохим) прослушивателем события ключа Javascript, который неправильно подавляет клавишу ввода (например, средство проверки пароля JS, которое проверяет введенные символы).

Если все еще напрасно, просто добавьте следующее onkeypress к h:form:

<h:form onkeypress="if (event.keyCode == 13) this.submit();">

Однако вам нужно принять во внимание текстовые зоны. Если они у вас есть, то вам нужно скопировать все onkeypress события для h:inputXXX элементов , ожидайте текстовых сообщений самостоятельно.

0 голосов
/ 04 октября 2012

протестировано с JSF 2. положить:

<h:commandButton id="hidden" style="visibility: hidden;" action="#{mybean.myaction()}" />

в вашей форме

0 голосов
/ 27 января 2011

Из ответа ComputerPilot я узнал, что это ошибка в IE, из-за которой родительская форма не может быть отправлена, если есть только один элемент ввода. Чтобы преодолеть эту проблему, я добавил еще один блок ввода с атрибутом style="display:none", и он работал нормально.

0 голосов
/ 12 марта 2010

Есть старая спецификация, которая всплывает у меня в голове. Если у вас есть форма, которая содержит только одно поле ввода, поведение отправки на клавишу enter не работает в некоторых версиях Internet Explorer. Самое простое решение - убедиться, что у вас есть более одного поля ввода.

Другие причины этой проблемы включают ...

  • Не имеет ввода типа submit
  • Имеет ввод типа submit, но он не виден на странице (скрыт или расположен вне страницы)

Это поведение очень специфично для этого браузера.

Отчет об ошибке MS здесь: connect.microsoft.com: значение кнопки отправки не публикуется при отправке формы

0 голосов
/ 12 марта 2010

Я заставил его работать, разместив дополнительный inputBox и скрыв его с помощью JavaScript. Дайте мне знать, если у вас есть другие предложения Спасибо BaluC за то, что указал мне правильное направление Джерри

...