<p:slider>导致JS错误“TypeError:h未定义”</p:slider>

时间:2013-09-10 13:21:12

标签: javascript jsf primefaces slider

我的<p:inputText>包含两位小数的价格值(例如德国为1,23或美国为1.23)。可以使用<f:convertNumber>轻松完成号码的格式设置。

<p:inputText value="#{bean.price}">
    <f:convertNumber groupingUsed="#{false}" maxFractionDigits="2" minFractionDigits="2" />
</p:inputText>

但这与<p:slider>组件不兼容。没有分数但具有分组值如20.000.000的相同事物。有谁知道如何运行?

<p:inputText id="txt1" value="#{quoteFinance.kms}">
    <f:convertNumber maxFractionDigits="0" />
</p:inputText>  
<p:slider for="txt1" />

滑动滑块时,出现javascript错误:TypeError: h is undefined

我在PrimeFaces论坛上问了同样的问题,但没有答案。 http://forum.primefaces.org/viewtopic.php?f=3&t=14401&p=107517#p107517

1 个答案:

答案 0 :(得分:3)

  

TypeError:h未定义

这些JS / jQuery错误通常是由webapp加载的重复的不同版本化jquery.js文件引起的。 PrimeFaces作为基于jQuery的JSF组件库已经自动加载jquery.js文件。此问题表明您出于某种原因需要通过jquery.js / <script>自行手动加载其他<h:outputScript>文件。如果删除它,则此错误应该消失。

您无需提供自己的jquery.js副本。如果您碰巧有一个页面,其中您想要使用一些jQuery,但页面本身不包含任何PrimeFaces组件,因此不一定自动包含PrimeFaces捆绑的jquery.js,那么您只需添加以下行,就可以直接从PrimeFaces库直接明确地包含它:

<h:outputScript library="primefaces" name="jquery/jquery.js" target="head" />

注意:当target="head"已经在<h:head>内时,<h:body>可以省略。否则,例如,当在模板客户端的<ui:define>jquery.js内时,它将自动重定位到head。另一个注意事项:您可以在页面中安全地使用此行,该页面实际上自动包含PrimeFaces捆绑的jquery.js。此行不会导致重复包含{{1}}。因此,您可以安全地将此行放在某个主模板中。