2010-07-28 27 views
1

我已經創建了管理使用面膜具有豐富的郵政編碼組件使用:jQuery的,豐富:jQuery的不工作時,在組件的facelet

這裏組件的代碼:

<h:inputText id="#{id}-postalCode" value="#{myBeanPath.postalCode}" size="7" /> 
<rich:jQuery selector="#postalCode" query="mask('a9a 9a9')" timing="onload" /> 

它在一個標準的jsf頁面中工作正常,但不在它處於facelet組件中時。

有沒有辦法讓豐富:jQuery在facelet組件中工作?

回答

1

使用組件玩了一段時間似乎jQuery代碼在直接在頁面中的facelet組件中產生不同。 呈現的非標準JSF頁面上的HTML看起來像這樣:

<td><script type="text/javascript">//<![CDATA[ 
    jQuery(document).ready(function() { 
    var selector = "#clientForm\\:postalCode"; 
    try { 
     selector = eval("#clientForm\\:postalCode"); 
    } catch (e) {} 
    jQuery(selector).mask('a9a 9a9'); 
}); 

但在組件的代碼是

<td><script type="text/javascript">//<![CDATA[ 
    jQuery(document).ready(function() { 
    var selector = "#postalCode"; 
    try { 
     selector = eval("#postalCode"); 
    } catch (e) {} 
    jQuery(selector).mask('a9a 9a9'); 
}); 

添加id和形式直接在jQuery選擇確定名稱問題所以最終代碼如下所示:

<h:inputText id="#{id}-postalCode" value="#{myBeanPath.postalCode}" size="7" /> 
<rich:jQuery selector="#{form}\\:#{id}-postalCode" query="mask('a9a 9a9')" timing="onload" /> 

應該正常工作。