在JSF中一个按钮可以同时实现onclick和action两个事件,但是在动态生成的表单中一个按钮就只有了onclick属性,这个时候如果要提交数据怎么办呢?可以用javascript的click()方法。
方法很简单用一个按钮去激活另一个按钮:
这个是动态生成的按钮
- out.print("<input type=\"button\" class=\"button01\" value=\"删除\" onclick=\"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;" onclick="return deleteData();" action="#{eva_showSelfJobDetailBB.delete}">
- function deleteData(){
- document.all("form1:doDelete").value=str;
- return true;
- }
这里的str是个全局变量,这样以前台的数据就可以与后台进行交互了。
本文转自sucre03 51CTO博客,原文链接:http://blog.51cto.com/sucre/380673,如需转载请自行联系原作者