在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是个全局变量,这样以前台的数据就可以与后台进行交互了。
本文介绍了一种在JSF动态生成的表单中通过使用JavaScript click()方法来触发隐藏的commandButton,从而实现表单数据提交的方法。这种方式能够使前端动态生成的按钮与后端进行有效交互。
12

被折叠的 条评论
为什么被折叠?



