Как отправить форму, используя функцию javascript в JSF с Richfaces, без имени или идентификатора формы? - PullRequest
2 голосов
/ 24 мая 2011

Как мне поступить при отправке формы в Richfaces без имени формы или идентификатора из javascript? Я думал, что смогу использовать тег jsFunction, но я не смог понять это.

Как примечание, я могу установить имя функции в jsFunction

РЕДАКТИРОВАТЬ RF 3.3, JSF 1.2

Ответы [ 3 ]

3 голосов
/ 24 мая 2011

Это невозможно без повторения идентификатора формы и без знания точного местоположения формы в дереве HTML DOM, в отличие от элемента, из которого вы хотите отправить форму.

Вы можете в лучшем случае использовать функцию EL rich:element().Представьте, что у вас есть такая форма:

<h:form id="myform">

, тогда вы можете использовать rich:element() следующим образом в контексте JS (на странице 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элемент в вопросе.Например,

<h:selectBooleanCheckbox onclick="doSomething(this.form)" />

с

function doSomething(form) {
    // ...
    form.submit();
}
1 голос
/ 24 мая 2011

Вам не нужно имя формы или идентификатор для отправки с помощью a4j: jsFunction.

0 голосов
/ 26 мая 2015

Если вы хотите использовать a4j: jsFunction, не забудьте добавить execute = "@ form", чтобы отправить всю форму

...