rich:Jquery在facelet组件中使用时不起作用

时间:2010-07-28 14:37:36

标签: jquery jsf richfaces facelets

我创建了一个使用带有rich:jquery,

的掩码来管理邮政编码的组件

这里是组件的代码:

<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 个答案:

答案 0 :(得分: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');
 });

直接在jquery选择器中添加表单的id和名称可以解决问题,因此最终代码如下所示:

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

应该可以正常工作。