2010-07-28 5 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, который непосредственно находится на странице. HTML-визуализация на странице стандартного JSF будет выглядеть следующим образом:

<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'); 
}); 

Добавления идентификатора и имя формы непосредственно в затруднительном селекторе JQuery проблема заключается в том, что окончательный код выглядит так:

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

Должен работать нормально.

Смежные вопросы