转载地址:http://blog.sina.com.cn/s/blog_6ecb96380101a7ff.html
在使用JSF时,使用a4j:commandButton的onclick事件和oncomplete事件不能同时使用解决办法。
onclick事件是在提交之前的校验,oncomplete是在提交之后完成后的执行的脚本。
可以使用a4j:commandButton和a4j:jsFunction配合使用,在a4j:commandButton中只做onclick提交前的校验,在a4j:jsFunction中做提交和完成提交后的脚本。
function check(){//提交前校验
var name = document.getElementByIdx_x_x("addForm:calssficationName").value;
if(name==''||name==null){
alert("请输入名称");
return false;
}
saveOk();//校验通过后做操作对应a4j:jsf的name属性
}
function end(){//提交完成后刷新父页面,并且关闭当前页面
window.opener.document.getElementByIdx_x_x("queryForm:queryBtn").click();
window.close();
}
<a4j:commandButton id="saveBtn" styleClass="btn" value="保存"
οnclick="return check();"/>
<a4j:jsFunction name="saveOk" action="#{mediumTypeDefBean.saveType}" oncomplete="end();" />