如何从javascript

时间:2015-07-30 17:04:16

标签: javascript java jquery html primefaces

我有一个xhtml页面,我使用Primefaces实现了tabView。

<p:tabView id="editorTab" styleClass="mySubPanelStyleNew"
		dynamic="true" cache="false"
		activeIndex="#{certInquiry.defaultIndex}" onTabChange="savetab()"
		effectDuration="0" tabChangeListener="#{certInquiry.onTabChange}"../>

从tabView我调用Javascript函数。我想从这个javascript函数调用我的Backing bean方法。

上面代码中的savetab()在我的.js文件中定义。

function saveTab() {
	removeSpellcheckwindow();
	var b = jQuery("#certEditorForm1\\:changeTag").val();
	var a = jQuery("#certEditorForm1\\:wordchangeTag").val();
	if (b == "true" || a == "true") {
		
		jQuery("#certDetailsEditorForm\\:certDetailSubmit").click();
		jQuery("#certEditorForm3\\:dummySave").click()
	}
}

在条件“if(b ==”true“|| a ==”true“)之前的saveTab()中,我想在我的一个Handler类中调用一个方法,然后用if条件恢复。

我尝试了以下方法但未能实现我的功能。 我在我的xhtml文件中创建了一个隐藏,并将bean方法称为监听器。然后在我的saveTab()中创​​建了一个jquery来单击我隐藏的commandButton。它可以工作,但基本问题是,当bean方法执行时,我的saveTab()继续执行,并且不等待我的bean方法完成。

有人可以建议解决我的问题。

1 个答案:

答案 0 :(得分:0)

  

&#34; ..基本问题是,当bean方法执行时,我的saveTab()继续执行,并且不会等待我的bean方法完成。&#34;

一般来说,你可以尝试这样的事情:

<p:remoteCommand name="rc" actionListener="#{bean.method()}"
         oncomplete="saveTabPartTwo(xhr, status, args)" />

function saveTabPartOne(){
    //before bean method is called
   rc();
}
function saveTabPartTwo(xhr, status, args){
    // after bean method finished
}
  

&#34;在我的saveTab()之前的条件&#34; if(b ==&#34; true&#34; || a ==&#34; true&#34;)&#34; ,我想在我的一个Handler类中调用一个方法,然后用if条件恢复。&#34;

为此,您需要将变量从saveTabPartOne()传送到远程命令,然后传送到saveTabPartTwo()。