JSF / RichFaces commandButton, вызываемый JavaScript, не перенаправляет - PullRequest
0 голосов
/ 19 сентября 2011

У меня есть функция javascript для запуска h: или a4j: commanButton. Когда вызывается функция javascript, кнопка действия запускает действие, но после этого страница не перенаправляется. Я использую Seam 2.2 и RichFaces 3.3.3 В чем здесь проблема? Спасибо.

  function submitForm(){
        document.getElementById('myForm:save').click(); 

        // does not redirect.
        //document.getElementById('myForm').submit();
        }  

Даже если я использую submit (), страница не перенаправляется.

Форма:

<h:form id="myForm">
//some fields

<h:commandButton id="save" value="Save"
                         action="#{personHome.persist}" />

</h:form>

1 Ответ

0 голосов
/ 19 сентября 2011

Кстати, для <h:commandButton> должно работать следующее:

document.getElementById('myForm:save').click(); 

и когда кнопка является первой кнопкой рассматриваемой формы:

document.getElementById('myForm').submit();

Вам нужно только убедиться, что сгенерированный идентификатор клиента точно совпадает с идентификатором, который вы указываете в getElementById().Если <h:form> вложен в другой компонент UINamingContainer, то перед идентификатором будет добавлен его идентификатор.Щелкните правой кнопкой мыши страницу в браузере и Просмотр источника , чтобы быть уверенным.

Что касается конкретной проблемы, возможно, вы подключили эту функцию к другой кнопке, которая, в свою очередь, также отправляет некую форму,результат гонки в двух запросах.Затем вы должны return false; из или после функции заблокировать действие вызывающего абонента по умолчанию.Например,

<h:commandButton onclick="return submitForm();" />

с

function submitForm(){
    // ...

    return false;
}  
...