Программная частичная подача

Моя форма состоит из следующих элементов:

  1. текстовое поле icefaces для ввода критериев поиска.
  2. Кнопка команды icefaces (find) для частичной отправки и заполнения div новым списком подходящих пользователей.
  3. другие два текстовых поля 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.

Установить немедленный = true на кнопку

Другие вопросы по тегам