2016-03-02 60 views
0

我想用Kendo UI建立一個數字輸入部件。我能夠設置格式,以便在字段沒有焦點時尾隨零不被截斷,但是當字段確實有焦點時,尾隨的零消失。如何在Kendo UI的numericTextBox中保留尾隨零?

我有一個例如在http://dojo.telerik.com/eBevU和相關位列舉如下:

<div id="add-product" class="demo-section k-content"> 
    <ul id="fieldlist"> 
    <li> 
     <label for="numeric">Input</label> 
     <input id="numeric" type="number" value="17" min="0" max="100" step="1" style="width: 100%;" /> 
    </li> 
    </ul> 
</div> 

<script> 
    $(document).ready(function() { 
    // create NumericTextBox from input HTML element 
    $("#numeric").kendoNumericTextBox({ 
     format: "n5", 
     decimals: 5 
    }); 
    }); 
</script> 

此示例示出了在輸入框「17.00000」之前使其具有焦點,和「17」之後。

回答

0

唯一的方法(我所經歷的)kendo在聚焦時將保留小數位數,如果該數字已經具有指定精度的值,否則將其刪除。您可以嘗試和修改該步驟,以便用戶可以通過較小的金額增加該值。

$("#numeric").kendoNumericTextBox({ 
    format: "n5", 
    decimals: 5, 
    step: 0.00001 
}); 

祝你好運。

0

我發現的唯一解決方案是基本上使用小部件配置中指定的格式重新構建值,即添加小數點分隔符(如果需要)和缺少的尾隨零。將下面的函數綁定到輸入的焦點事件。

function() { 
    var input = $(this); 
    var widget = input.data("kendoNumericTextBox"); 

    setTimeout(function() { 
     if (widget !== undefined && input.val() !== "") { 
      var format = widget._format(widget.options.format); 
      var decimals = widget.options.decimals; 

      if (decimals > 0) { 
       var inputValue = input.val(); 
       var digits = inputValue.split(format["."]); 

       if (digits.length == 1) 
        inputValue = inputValue + format["."]; 

       var l = digits[0].length + 1 + decimals; 
       while (inputValue.length < l) 
        inputValue = inputValue + "0"; 

       input.val(inputValue); 
      } 
     } 
    } 
} 

你可以找到here你的例子修改。

相關問題