2011-12-12 19 views
0

我正在使用JSF + RF3.3的JQuery 我的要求是,當用戶單擊YES單選按鈕時,將顯示幾個組件。如果他點擊NO,那麼這些組件將被隱藏。 在頁面加載最初顯示這些組件。在Radio上隱藏RichFaces組件使用JQuery在JSF中單擊

儘管使用Jquery,我能夠提取單選按鈕的值,但我無法隱藏/顯示component.Morever組件是ListShuttle。我不能夠選擇在ListShuttle.The任何組件選擇本身沒有工作..

的代碼片段是: -

<rich:panel> 
<h:selectOneRadio id="Radio" border="0" label="Name" value="#{bean.functionName}" required="true" styleClass="intro" onchange="showNameList()" > 
<f:selectItem id="All" itemValue="All" itemLabel="All" /> 
<f:selectItem id="region" itemValue="Region" itemLabel="Region" /> 
</h:selectOneRadio> 
</rich:panel> 

這將顯示/隱藏在電臺被點擊的組件: -

<div id="alll"> 
    <h:outputLabel value="RegionList *" id="region" styleClass="intro" escape="false" /> 
    <h:outputLabel value=" : " styleClass="intro" id="colonLabel" escape="false" /> 
    <h:panelGroup>  
    <rich:listShuttle id="calListShuttle" sourceValue="#{Bean.SourceList}" targetValue="#{Bean.targetList}" var="itemsRegion" fastOrderControlsVisible="false" orderControlsVisible="false" targetRequired="true" > 
    <rich:column > 

    <h:outputLabel value="#{itemsRegion}"/> 
    </rich:column >         
    </rich:listShuttle> 
</div> 

jQuery代碼是

<script> 
    function showRegionList() 
    { 
     jQuery(document).ready(function() 
     { 
     var $ = jQuery; 

     $("input:radio[@name='Create\\:Radio']").click(function() { 
     var radioValue=$("input[name='Create\\:Radio']:checked").val(); 

     if(radioValue=="All") 
     { 
      $("#alll").hide("slow");  
     } 
     else 
     { 
      $("#alll").show("slow"); 
     } 

     }); 
     }); 
     } 
    </script> 

+0

你試過在螢火蟲或你最喜歡的js調試器下進行調試嗎?隱藏/顯示代碼看起來很好,如果達到,應該可以工作。我在showRegionList下的jQuery.ready有點遺憾,但我認爲這部分是做它應該做的。 – mrembisz

+0

其實我從來沒有使用過螢火蟲或js調試器...從現在開始,我一定會嘗試使用它... – AngelsandDemons

回答

0

你使用jQuery犯了一個基本錯誤。 jQuery庫設計用於在頁面加載期間輕鬆地將事件處理程序添加到HTML DOM樹,而無需直接在HTML標記內指定它們。

爲了讓您的代碼工作,你需要刪除從標記的事件屬性:

onchange="showNameList()" 

,你需要刪除功能塊周圍jQuery.ready()

function showRegionList() { 

} 

(這些功能名稱的方式不匹配,請仔細檢查您的問題,以避免紅鯡魚)

這樣jQuery.ready()將按預期運行並將click事件處理函數附加到所需的HTML元素。

我強烈建議您花一些時間去閱讀一些體面的jQuery書籍/教程。

+0

感謝您的建議..正如您指出的,有一個錯字錯誤。我發現的問題是包含由Google提供的Jquery腳本。由於我使用加載了內部JQuery 1.3.2的RF3.3.3,因此存在衝突,因此沒有任何JSF組件可以工作。當我加載RichFaces特定的JQuery組件開始工作,但JQuery不工作。我想我將不得不使用標記來觸發JQuery,如果我使用RF和JQuery。 – AngelsandDemons

+0

這是一個不同於你在問題中陳述的問題。 – BalusC

+0

我的不好..當我加載RichFaces附帶的JQuery腳本文件時,這個問題就解決了。你指出的一些錯誤也照顧了..再次感謝你的幫助... – AngelsandDemons

相關問題