簡體   English   中英

價格jquery中的小數位自動格式

[英]decimal places auto format in price jquery

我試圖隱瞞類型input字段on小數位

數從0.00開始

因此,第一位輸入字段為0.00

比我輸入1比應該變成0.01

比我鍵入2比應該變成0.12

大於0因此1.20 ,最后

當我輸入0它應該變成12.00

0.010.121.2012.00

我嘗試了一些已經在SO中給出但沒有成功的方法。

如果可以的話,請建議我其他方法。 謝謝。

我嘗試過這樣

 $(document).on('keyup','.price',function(e){ var value = $(this).val(); if(value.length <= 6) { if(e.which == 190 || e.which == 46 || e.which == 44 || e.which == 188){ var amountDots = 0; var amountCommas = 0; if(value.indexOf(',') > -1){ amountCommas = value.match(/,/gi).length; } if(value.indexOf('.') > -1){ amountDots = value.match(/./gi).length; } if((amountDots >= 1 && amountCommas >= 1) || amountCommas > 1 || value.length == 1){ $(this).val(value.substr(0,value.length - 1)); return false; } else{ $(this).val(value.substr(0, value.length - 1) + ','); } } $(this).val(value/100); //here is the value will insert } else { $(this).val(value.substr(0,value.length - 1)) return false; } }); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="text" class="price" /> 

好的,刪除字符時可以使用的完全不同的解決方案:

$(document).on('keypress','.price',function(e){
    var char = String.fromCharCode(e.which);
    if(isNaN(char)) char = '';
    var value = $(this).val() + char;
    value = value.replace('.','');
    $(this).val((value/100).toFixed(2));
    if(!isNaN(char)) return false;
}).on('keyup','.price',function(e){
    var value = $(this).val();
    value = value.replace('.','');
    $(this).val((value/100).toFixed(2));
});

https://jsfiddle.net/14shzdo5/

以下邏輯適用於基本方案。 您可能需要單獨處理清除文本輸入。

 $(document).ready(function() { $("#my-input").on('keyup', function(e) { var v = String.fromCharCode(e.keyCode); if (!isNaN(v)) { var dv = $("#my-display").val(); $("#my-display").val(dv + '' + v); $(this).val(($("#my-display").val() / 100).toFixed(2)); } }); }); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script> <input type="text" id="my-input" /> <input type="hidden" id="my-display" /> 

對於每個新的擊鍵,假設它是一個數字,請將其添加到末尾,乘以10並顯示結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM