簡體   English   中英

無法通過Chrome中的h:commandbutton調用jsf操作

[英]Not able to call jsf action through h:commandbutton in chrome

對JSF j:commandButton的操作,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>

通過上面的代碼,我得到了Link,它能夠調用js函數'performPolicyHistoryAction'

在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的action方法。 在IE和FF中運行正常

注意:如果我在<h:commandButton>的onClick中放置了警報,則會收到警報。

“更改為onclick =” return performPolicyHistoryAction('ViewOnly',id);“更改為onclick =” performPolicyHistoryAction('ViewOnly',id);返回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>

工作正常...

非常感謝您的回答,對我很有幫助。 就我而言,我在Jquery的命令按鈕中調用click()操作。 所有這些都從輸入類型圖像調用。 但是該頁面僅在提交時刷新為chrome,並且從未在托管bean中調用datosTraficoJS,因此,該頁面從不重定向至下一個頁面。 僅在chrome和IE中不起作用,FF效果很好。 我在onclick之后放置了“; return false”,它工作得很好。

輸入類型:

<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}" />

希望它對其他人有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM