为primefaces输入数字格式化小数位

时间:2013-06-21 01:26:23

标签: jsf input primefaces numeric primefaces-extensions

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

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

然后,如果我输入[1]它将显示[1,000000000],我的麻烦很多,可能会让我的用户感到困惑。 无论如何都要在此输入上修剪它?,只显示输入的任何用户,例如[1,20] -> [1,2] or [1,20]

2 个答案:

答案 0 :(得分: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=","
    />

答案 1 :(得分:0)

您可以使用decimalPlaces属性。默认值是从maxValue属性获取的,因此在您的情况下为999999999999999。 999999999