我如何在没有来自javascript的表单名称或ID的情况下在Richfaces 中提交表单?我以为我可以使用jsFunction标签,但我无法弄明白。
作为一个注释,我可以在jsFunction中设置函数的名称
编辑 RF 3.3,JSF 1.2
答案 0 :(得分:3)
如果不重复表单ID并且不知道HTML DOM树中表单的确切位置,那么这是不可能的,而不是您要提交表单的元素。
你最多可以使用EL函数rich:element()
。想象一下,你有一个这样的形式:
<h:form id="myform">
然后你可以在JS上下文中使用rich:element()
(在JSF页面中!)来获取HTML DOM元素的形式:
<script>
var form = #{rich:element('myform')};
form.submit();
</script>
这就是生成HTML,如下所示
<script>
var form = document.getElementById('myformOrWhateverClientIdItHas');
form.submit();
</script>
更新:或者,当表单内部的元素调用JS函数时,只需使用this.form
来获取相关HTML DOM元素的父表单元素。 E.g。
<h:selectBooleanCheckbox onclick="doSomething(this.form)" />
与
function doSomething(form) {
// ...
form.submit();
}
答案 1 :(得分:1)
您不需要使用a4j:jsFunction提交表单名称或ID。
答案 2 :(得分:0)
如果你想使用a4j:jsFunction,不要忘记添加execute =“@ form”以提交所有表格