[英]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.01
, 0.12
, 1.20
, 12.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));
});
以下邏輯適用於基本方案。 您可能需要單獨處理清除文本輸入。
$(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.