Невозможно вызвать действие 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 объявлен как
<h:commandButton action="#{someBean.viewOnlyAction}"
id="lnkViewOnlyrefresh" value="refresh" styleClass="hide" title="refresh"></h:commandButton>
здесь, в 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}" />
Надеюсь, это поможет кому-то еще.