Программная частичная подача
Моя форма состоит из следующих элементов:
- текстовое поле icefaces для ввода критериев поиска.
- Кнопка команды icefaces (find) для частичной отправки и заполнения div новым списком подходящих пользователей.
- другие два текстовых поля icefaces, при отправке всей формы мне нужны их значения.
Требование: я хочу, чтобы при нажатии пользователем кнопки ввода в поле ввода текста нажималась кнопка поиска (при нажатии кнопки мышью автоматически выполняется частичная отправка).
так вот что я попробовал:
<ice:inputText id="recipient" value="#{myBean.searchValue}" size="60"
onkeydown="handleEnter(event,this.form);" >
</ice:inputText>
<ice:commandButton id="find" value="Find" action="#{myBean.findEmployees}" partialSubmit="true"
>
<f:ajax execute="@this" render="employees" />
</ice:commandButton>
метод JS:
function handleEnter(event,form){ if (event.keyCode == 13){ document.getElementById(form.name+':find').click(); } }
сгенерированная кнопка управления льдом:
<input type="submit" value="Find" style="width: 60px;" onfocus="setFocus(this.id);" onclick="iceSubmitPartial(form, this, event);return false;" onblur="setFocus('');" name="myForm:find" id="myForm:find" class="iceCmdBtn findButton">
ПРОБЛЕМА: что происходит, когда пользователь нажимает клавишу ввода, вызывается кнопка поиска, но передается вся форма, поэтому для двух других текстовых полей появляется требуемая ошибка проверки.
Пожалуйста, сообщите, почему отправляется вся форма, и как решить эту проблему.
2 ответа
Решение
Чтобы кнопка ввода работала нормально с частичной отправкой, мне нужно удалить тег "required=true" из входных данных и выполнить проверку с помощью JS.