为 primefaces ext 输入数字设置小数位格式

问题描述 投票:0回答:4

我有一些代码如下(工作正常)

  <pe:inputNumber
        value="#{myBean.myVal}"
        minValue="0" maxValue="999999999999999.999999999"
        emptyValue="1"
        thousandSeparator="."
        decimalSeparator=","
    />

然后,如果我输入[1],它将显示[1,000000000],我的麻烦是很多零可能会让我的用户感到困惑。 是否有办法在此输入上修剪它?,只显示用户输入的任何内容,例如

[1,20] -> [1,2] or [1,20]

jsf input primefaces numeric primefaces-extensions
4个回答
2
投票

我的脚本:

function trimDecimalPlace(){                
                var curVal = $(".ui-inputNum > input:first-child").val();
                var parseVal = '';
                if(curVal.indexOf(".") > curVal.indexOf(",")){
                    var tokens = curVal.split(".");
                    var decimalVal = parseFloat("0."+tokens[1])+"";                 
                    if(decimalVal != "0"){
                       parseVal = tokens[0]+"."+decimalVal.substring(2);
                    }else{
                       parseVal = tokens[0];
                    }   
                }else{
                    var tokens = curVal.split(",");
                    var decimalVal = parseFloat("0."+tokens[1])+"";                 
                    if(decimalVal != "0"){
                       parseVal = tokens[0]+","+decimalVal.substring(2);
                    }else{
                       parseVal = tokens[0];
                    }
                }
                $(".ui-inputNum > input:first-child").val(parseVal);
            }

并在模糊时调用它:

    <pe:inputNumber
        value="#{myBean.myVal}"
        minValue="0" maxValue="999999999999999.999999999"
        emptyValue="1"
        onblur="trimDecimalPlace();"
        thousandSeparator="."
        decimalSeparator=","
    />

0
投票

您可以使用

decimalPlaces
属性。默认值是从
maxValue
属性获取的,因此在您的情况下它是 999999999999999.999999999.


0
投票

只需将标签 padControl="false" 与 inputNumber 控件一起使用

<p:inputNumber style="width:140px;"
    value="#{mopEdicionBean.permisoMop.mopKlmtFinalB}"
    thousandSeparator="" decimalPlaces="3" maxlength="4" minValue="0"
    maxValue="9999" size="16" padControl="false">
    <p:ajax event="change" update="nombre_permiso"/>
</p:inputNumber>

0
投票

p:inputNumber
很难与可变长度的数字一起使用。只需将
p:inputText
与大
maxFractionDigits
一起使用,并强制区域设置获得正确的小数分隔符和千位分隔符。

<p:inputText value="#{myBean.myVal}">
  <f:convertNumber minFractionDigits="1" maxFractionDigits="50"
    locale="#{myBean.locale}"/>
  <f:validateDoubleRange minimum="0" maximum="999999999999999.999999999"/>
</p:inputText>
© www.soinside.com 2019 - 2024. All rights reserved.