Невозможно вызвать действие jsf через h:commandbutton в chrome

Имея вопрос о JSF j:commandButton action, браузер chrome и JSF 1.1

Вызов функции JavaScript при нажатии на ссылку команды, как показано ниже

<h:dataTable>
<h:column>
<h:panelGroup rendered="#{expression which returns true}">
<f:verbatim rendered="#{someView.agentEdit}"> </f:verbatim>
<h:commandLink id= "editId" styleClass="commandLinkClass"rendered="#policyHistory.agentEdit}" onclick="return performPolicyHistoryAction('Edit', id);" value="Edit"/>
</h:panelGroup>
</h:column>
</h:dataTable>

С помощью приведенного выше кода я получаю ссылку, и она может вызвать функцию JS "executePolicyHistoryAction"

В функции JS

function performPolicyHistoryAction(cntrlValue, cntrlId){
  DWREngine.setAsync(false);
  if (cntrlValue == 'Edit')  {
  document.getElementById("someString:lnkViewOnlyrefresh").click();
 }
}

и someString:lnkViewOnlyrefresh объявлен как

&lt;h:commandButton action="#{someBean.viewOnlyAction}"
        id="lnkViewOnlyrefresh" value="refresh" styleClass="hide" title="refresh"&gt;&lt;/h:commandButton&gt;

здесь, в chrome, не вызывая метод действия commandButton. Работает нормально в IE и FF

Примечание. Если я поместил предупреждение в onClick , я получу предупреждение.

2 ответа

Изменено на onclick="return executePolicyHistoryAction('ViewOnly', id); " заменено наonclick = "executePolicyHistoryAction('ViewOnly', id); return false;"

в нижнем коде

<h:dataTable>
<h:column>
<h:panelGroup rendered="#{expression which returns true}">
<f:verbatim rendered="#{someView.agentEdit}"> </f:verbatim>
<h:commandLink id= "editId"  styleClass="commandLinkClass"rendered="#policyHistory.agentEdit}" onclick="performPolicyHistoryAction('Edit', id); return false;" value="Edit"/>
</h:panelGroup>
</h:column>
</h:dataTable>

Работает нормально...

Большое спасибо за ваш ответ, он мне очень помогает. В моем случае я вызывал действие click() в командной кнопке из Jquery. Все это вызывается из изображения типа ввода. Но страница обновляется только в chrome при отправке и никогда не вызывает datosTraficoJS в управляемом компоненте, и по этой причине страница никогда не перенаправляется на следующий. Только в хром и IE не работает, FF работает хорошо. Я ставлю "; вернуть ложь" после клика, и он работает очень хорошо.

Тип ввода:

<input type="image" src="../resources/clock.png" onclick="editaTrafico(401); return false;"/>

Функция:

function editaTrafico(idEmbarque) {
    var fieldIdEmbarque = $("#consultaDespachosTraficoForm\\:hdnIdEmbarque");
    fieldIdEmbarque.val(idEmbarque);
    var botonTraf = $("#consultaDespachosTraficoForm\\:hdnBtn");
    botonTraf.click();
    }

Командная кнопка:

<h:commandButton id="hdnBtn" type="submit"     action="#consultaDespachosTraficoBean.datosTraficoJS}" 
value="#{msg.gen_filtrar}" />

Надеюсь, это поможет кому-то еще.

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