如何在JSF w / Richfaces中使用javascript函数提交表单,没有表单名称或ID?

时间:2011-05-23 20:21:30

标签: javascript jsf richfaces

我如何在没有来自javascript的表单名称或ID的情况下在Richfaces 中提交表单?我以为我可以使用jsFunction标签,但我无法弄明白。

作为一个注释,我可以在jsFunction中设置函数的名称

编辑 RF 3.3,JSF 1.2

3 个答案:

答案 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”以提交所有表格