在JSF中一个按钮可以同时实现onclick和action两个事件,但是在动态生成的表单中一个按钮就只有了onclick属性,这个时候如果要提交数据怎么办呢?可以用javascript的click()方法。
方法很简单用一个按钮去激活另一个按钮:
这个是动态生成的按钮
out.print("<input type=\"button\" class=\"button01\" value=\"删除\" οnclick=\"deleteLine('"+array[1]+"','"+itemId+"','"+i+"');\">");
function deleteLine(array,itemId,num){ str = array+":"+itemId+":"+num; document.all("form1:deletebutton").click(); }
看到了,这里调用了deletebutton的click()方法,这样就激活了deletebutton的onclick事件,
<h:inputHidden id ="doDelete" value="#{eva_showSelfJobDetailBB.doDelete}"/>
<h:commandButton id="deletebutton" value="删除" style="display:none;" οnclick="return deleteData();" action="#{eva_showSelfJobDetailBB.delete}">
function deleteData(){ document.all("form1:doDelete").value=str; return true; }
这里的str是个全局变量,这样以前台的数据就可以与后台进行交互了。