使用組件玩了一段時間似乎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');
});
添加id和形式直接在jQuery選擇確定名稱問題所以最終代碼如下所示:
<h:inputText id="#{id}-postalCode" value="#{myBeanPath.postalCode}" size="7" />
<rich:jQuery selector="#{form}\\:#{id}-postalCode" query="mask('a9a 9a9')" timing="onload" />
應該正常工作。