2014-02-18 65 views
0

某些選擇信息我有以下selectOneMenu用於消防AJAX在selectOneMenu用於

<p:selectOneMenu value="#{bean.value}"> 
    <f:selectItem value="#{bean.item1}"/> 
    <f:selectItem value="#{bean.item2}"/> 
    <f:selectItem value="#{bean.item3}"/> 

    <p:ajax listener="#{bean.item3AjaxEvent}" update="fieldToUpdate"></p:ajax> 

</p:selectOneMenu> 

現在我想做的事情,只有當item3從selectOneMenu用於選擇一些AJAX動作。不是所有的項目。有沒有辦法做到這一點?

放置ajax標籤將觸發所有選擇項目的事件。我不想向服務器生成不需要的Ajax請求。

+0

描述你的AJAX動作?這是什麼意思 ? – Makky

+0

@Makky我在我的問題中編輯了代碼。請再看一下。 –

+0

'p:ajax'具有'onstart'屬性。檢查你的條件並嘗試從該函數返回false來停止執行。 – mabi

回答

1

我會這樣做。

XHTML

<p:selectOneMenu widgetVar="selectOneMenuWV" 
        onchange="checkItem()"> 
    <f:selectItem itemLabel="Select One" itemValue="" /> 
    <f:selectItem itemLabel="Option 1" itemValue="1" /> 
    <f:selectItem itemLabel="Option 2" itemValue="2" /> 
    <f:selectItem itemLabel="Option 3" itemValue="3" />        
</p:selectOneMenu> 


<p:remoteCommand name="myRemoteCommand" 
      actionListener="#{bean.item3AjaxEvent()}" 
      update="fieldToUpdate"/> 

<script> 
    function checkItem() { 
     if(selectOneMenuWV.getSelectedValue() == 3) { 
      myRemoteCommand(); 
     } 
    } 
</script> 

希望這有助於。