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

我需要在表单的输入字段中添加一些掩码。 我尝试插入jQuery.jsjQuery.MaskedInput.js如下面的代码所示:

     jQuery(function($){ $("#date").mask("99/99/9999"); $("#phone").mask("(999) 999-9999"); $("#tin").mask("99-9999999"); $("#ssn").mask("999-99-9999"); });  TITLE       

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

使用BalusC $("[id='form:phone']").mask("(99) 9999-9999"); 更新更新 $("[id='form:phone']").mask("(99) 9999-9999"); 它工作正常! (多谢,伙计)。 但是我需要在数据表中应用这个掩码:

  jQuery(function($){ $("input.phones").mask("(999) 999-9999"); });  TITLE 

                   

任何的想法 ?

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

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

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

或者,无需明确逃避:

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

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

     

然后可以更一般地按如下方式选择,而不需要在视图中摆弄可能多个相同类型的输入字段的ID,例如在

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

使用JSF和RichFaces我设法解决了这样的冲突掩码:

 var $j = jQuery.noConflict(); window.onload = function () { $j(#{rich:element('parProcecessoNumProtocolo')}).mask('9999.999999/9999-99'); }