0

在选择 DIV 元素时,我获取所选 DIV 隐藏元素的值并将其传递给其中包含隐藏元素的表单。然后提交此表格。以下是我的代码片段。

在选择 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>

爪哇

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

}

4

1 回答 1

1

valueChangeListener看来您在 inputText 上没有属性。您需要此属性,以便 JSF 知道要调用哪个侦听器。假设您的 bean 被命名为“bean”,这是一个示例:

<h:inputText value="#{post.uuid}" valueChangeListener="#{bean.changeListenerSelectedForumPost}" styleClass="hiddenInputText" />
于 2010-08-03T16:33:10.110 回答