2010-08-03 47 views
0

选择一个DIV元素时,我将所选DIV的隐藏元素的值传递给包含隐藏元素的表单。然后提交此表格。 下面是我的代码段。JSF valueChangeListener未在表单提交时触发

隐藏输入形式正确的选择DIV和形式也提交但valueChangeListener设置 内的值不会被解雇。

欢迎各位提示!

-choesang

形式隐藏的元素:

<a4j:form id="currentForumPost" ajaxSubmit="true" 
      onsubmit="console.log('currentForumPost is submitted'); 
      console.log(jQuery('#currentForumPost:currentPostId').val())" > 
     <h:inputHidden id="currentPostId" 
     valueChangeListener="#{forumController.changeListenerSelectedForumPost}" 
     immediate="true"/> 
</a4j:form> 

DIV元素:

<div class="block ui-accordion ui-widget ui-helper-reset" 
    onclick="var x = jQuery(this).find('.hiddenInputText').val();   
    jQuery(this).closest('#RightPane').find('#currentForumPost:currentPostId').val(x);  
    jQuery(this).closest('#RightPane').find('#currentForumPost').submit();"> 
    <h:inputText value="#{post.uuid}" styleClass="hiddenInputText"/> 
         ...... 
</div> 

的Java

public void changeListenerSelectedForumPost(final ValueChangeEvent event) { 
setSelectedForumPost(event.getComponent().getAttributes().get("value").toString()); 

}

回答

1

看来,你没有对一个inputText的属性valueChangeListener。您需要此属性,以便JSF知道要调用哪个侦听器。假设你的豆命名为'豆',这里是一个例子:

<h:inputText value="#{post.uuid}" valueChangeListener="#{bean.changeListenerSelectedForumPost}" styleClass="hiddenInputText" /> 
+0

嗨科林, 感谢您回答我的文章。我的部分代码不可见,对此感到遗憾。我确实有一个valueChangeListener,但不完全适用于元素,而是。 请注意,是提交给服务器端的元素。 – tchoesang 2010-08-04 08:14:46

+0

好的。现在没有什么明显的错误。如果将h:inputHidden更改为h:inputText,它会起作用吗? – 2010-08-05 14:50:58