rich: Jquery не работает при использовании в компоненте facelet - PullRequest
1 голос
/ 28 июля 2010

Я создал компонент, который управляет почтовыми кодами, используя маску с расширением: jquery,

Вот код компонента:

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

Работает нормально на стандартной странице jsf, но не в компоненте facelet.

Есть ли способ сделать rich: jQuery работает в компоненте facelet?

1 Ответ

1 голос
/ 28 июля 2010

После некоторой игры с компонентом Кажется, что код 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" />

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

...