Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中触发隐藏的JSF命令链接?_Javascript_Jsf 2_Facelets_Managed Bean - Fatal编程技术网

如何在JavaScript中触发隐藏的JSF命令链接?

如何在JavaScript中触发隐藏的JSF命令链接?,javascript,jsf-2,facelets,managed-bean,Javascript,Jsf 2,Facelets,Managed Bean,我有一个类似的问题,我有一个JavaScript函数,它将触发隐藏的commandLink的点击事件。隐藏命令将在JavaBean中触发该操作。这段代码在IE中运行良好,但在Firefox中却不行。在这个问题上有什么线索吗 JavaScript <h:outputScript target="head"> HTMLElement.prototype.click = function() { var evt = this.ownerDocument.createEven

我有一个类似的问题,我有一个JavaScript函数,它将触发隐藏的
commandLink
的点击事件。隐藏命令将在JavaBean中触发该操作。这段代码在IE中运行良好,但在Firefox中却不行。在这个问题上有什么线索吗

JavaScript

<h:outputScript target="head">
    HTMLElement.prototype.click = function() {
    var evt = this.ownerDocument.createEvent('MouseEvents');
    evt.initMouseEvent('click', true, true, this.ownerDocument.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
    this.dispatchEvent(evt);
  }

  function triggerHiddenEvent() {
    alert("triggerHiddenEvent is trigger");
    document.getElementById("theForm:hiddenCommand").click();
  }
</h:outputScript>
改变

onclick=“triggerHiddenEvent”

进入

onclick=“triggerHiddenEvent();返回false;”

您需要添加
返回false代码段以停止页面提交/重新加载

h:commadLink标记:


此标记生成HTML的

,我尝试了您的解决方案,其行为与此相同。我刚刚发现,如果我在
document.getElementById(“theForm:hiddenCommand”)上放置一个断点,单击()
在firebug中,它实际上将执行
doHiddenCommand()
。当我删除断点时,它不再执行。我只是很好奇,当从JavaScript执行click事件时,是否需要延迟或睡眠(1000)
,以使其工作?如何调用
triggerHiddenEvent()
?如何添加
()
?onclick事件将触发JavaScript函数
triggerHiddenEvent()
onclick=“triggerHiddenEvent();return false;”
?完美!!它起作用了!!为什么?返回错误试图做什么?你能在回答中更新这个问题吗?
<h:form id="theForm">
  <h:commandLink id="tri_HiddenEvent" value="Trigger Hidden Event" onclick="triggerHiddenEvent"/>

  <p style="display:none">
    <h:commandLink id="hiddenCommand" styleClass="button" action="#{helloBean.doHiddenCommand}"/>
  </p>
  ...
@ManagedBean
@SessionScoped
public class HelloBean implements Serializable {
  public String doHiddenCommand() {
    System.out.println("doHiddenCommand is called");
    return "";
  }
}