jquery – 如何在JSF 2 RichFaces 4的输入字段中使用掩码?

前端之家收集整理的这篇文章主要介绍了jquery – 如何在JSF 2 RichFaces 4的输入字段中使用掩码?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要在表单的输入字段中添加一些掩码.
我尝试插入jQuery.js和jQuery.MaskedInput.js,如下面的代码所示:
  1. <h:head>
  2. <h:outputScript name="jquery-1.6.4.min.js" library="javascript" />
  3. <h:outputScript name="jquery.maskedinput-1.3.js" library="javascript" />
  4.  
  5. <script>
  6. jQuery(function($){
  7. $("#date").mask("99/99/9999");
  8. $("#phone").mask("(999) 999-9999");
  9. $("#tin").mask("99-9999999");
  10. $("#ssn").mask("999-99-9999");
  11. });
  12. </script>
  13.  
  14. <title>TITLE</title>
  15. </h:head>
  16.  
  17. <h:body>
  18. <h:form id="form">
  19. <h:inputText id= "date" />
  20. </h:form>
  21. </h:body>

到目前为止没有任何意义.

UPDATE
使用BalusC $(“[id =’形式:电话’]”).mask(“(99)9999-9999”);它工作正常! (多谢,伙计).
但是我需要在数据表中应用这个掩码:

  1. <script>
  2. jQuery(function($){
  3. $("input.phones").mask("(999) 999-9999");
  4. });
  5. </script>
  6.  
  7. <title>TITLE</title>
  1. <h:form id="form">
  2.  
  3. <h:panelGrid columns="3">
  4. <h:outputLabel for="phones" value="Telefone(s) :" />
  5. <h:dataTable id="phones" value="#{profile.user.userPhones}" var="item">
  6. <h:column>
  7. <h:inputText id= "phone" value="#{item.phone}" />
  8. </h:column>
  9. <h:column>
  10. <h:commandButton value="Remove" action="#{profile.removePhone}"/>
  11. </h:column>
  12. <h:column>
  13. <rich:message id="m_phone" for="phone" />
  14. </h:column>
  15. </h:dataTable>
  16. <h:commandButton value="Add" action="#{profile.addPhone}"/>
  17. </h:panelGrid>
  18.  
  19. </h:form>

任何的想法 ?

解决方法

JavaScript / jQuery在浏览器中运行,并且在由JSF生成并发送到浏览器的HTML DOM树上工作,它不拦截JSF组件树本身.您的$(“#date”)将不返回任何内容,因为HTML DOM树中不存在具有该ID的元素.在浏览器中打开页面,右键单击“查看源”.您会看到它实际上是以< input id =“form:date”>生成的,而不是< input id =“date”>.

您应该使用以下选择器(请注意:在CSS中是非法字符,因此应该被转义):

  1. $("#form\\:date").mask("99/99/9999");
  2. $("#form\\:phone").mask("(999) 999-9999");
  3. $("#form\\:tin").mask("99-9999999");
  4. $("#form\\:ssn").mask("999-99-9999");

或者,无需明确逃避:

  1. $("[id='form:date']").mask("99/99/9999");
  2. $("[id='form:phone']").mask("(999) 999-9999");
  3. $("[id='form:tin']").mask("99-9999999");
  4. $("[id='form:ssn']").mask("999-99-9999");

或者,或者,只是给他们一个类名:

  1. <h:inputText id="date" styleClass="date" />
  2. <h:inputText id="phone" styleClass="phone" />
  3. <h:inputText id="tin" styleClass="tin" />
  4. <h:inputText id="ssn" styleClass="ssn" />

然后可以更一般地选择,如下所示,而不需要在视图中摆弄可能多个相同类型的输入字段的ID,例如在< h:dataTable>内:

  1. $("input.date").mask("99/99/9999");
  2. $("input.phone").mask("(999) 999-9999");
  3. $("input.tin").mask("99-9999999");
  4. $("input.ssn").mask("999-99-9999");

猜你在找的jQuery相关文章