0

对 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>

使用上面的代码,我得到了链接,它能够调用 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 的操作方法。它在 IE 和 FF 中运行良好

注意:如果我将警报放在 <h:commandButton> 的 onClick 中,我会收到警报。

4

2 回答 2

0

改为onclick="return performPolicyHistoryAction('ViewOnly', id);"改为 onclick="performPolicyHistoryAction('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>

工作正常...

于 2014-06-27T13:05:20.177 回答
0

非常感谢您的回答,它对我很有帮助。在我的情况下,我在 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}" />

希望对其他人有所帮助。

于 2016-09-30T16:16:50.780 回答