Ответ 1
Попробуйте выполнить любое из этих действий:
http://plugins.jquery.com/tag/currency/
Они также могут содержать то, что вы ищете:
В моем веб-приложении у меня есть поле ввода под названием "Бюджет", в котором пользователи вводят предлагаемый бюджет для проекта. Мне нужно создать замаскированный вход, чтобы автоматически вводить введенный объем в следующий формат, когда пользователь вводит в поле ввода:
1 000
10 000
100 000
Я искал в Интернете, но, похоже, не нашел нужного. Может ли кто-нибудь указать мне подходящий плагин или, может быть, предложить собственное решение?
Спасибо заранее.
Попробуйте выполнить любое из этих действий:
http://plugins.jquery.com/tag/currency/
Они также могут содержать то, что вы ищете:
Я использую следующий код для архивирования формата валюты без использования дополнительных плагинов:
$('input.money-bank').on('keydown',function(e){
// tab, esc, enter
if ($.inArray(e.keyCode, [9, 27, 13]) !== -1 ||
// Ctrl+A
(e.keyCode == 65 && e.ctrlKey === true) ||
// home, end, left, right, down, up
(e.keyCode >= 35 && e.keyCode <= 40)) {
return;
}
e.preventDefault();
// backspace & del
if($.inArray(e.keyCode,[8,46]) !== -1){
$(this).val('');
return;
}
var a = ["a","b","c","d","e","f","g","h","i","`"];
var n = ["1","2","3","4","5","6","7","8","9","0"];
var value = $(this).val();
var clean = value.replace(/\./g,'').replace(/,/g,'').replace(/^0+/, '');
var charCode = String.fromCharCode(e.keyCode);
var p = $.inArray(charCode,a);
if(p !== -1)
{
value = clean + n[p];
if(value.length == 2) value = '0' + value;
if(value.length == 1) value = '00' + value;
var formatted = '';
for(var i=0;i<value.length;i++)
{
var sep = '';
if(i == 2) sep = ',';
if(i > 3 && (i+1) % 3 == 0) sep = '.';
formatted = value.substring(value.length-1-i,value.length-i) + sep + formatted;
}
$(this).val(formatted);
}
return;
});
JSFiddle: https://jsfiddle.net/gt2Ly5rt/6/
При этом script пользователь вводит только числа, script будет автоматически размещать десятичные и тысячи разделителей (он жестко скопирован в формат BRL, но вы можете его настроить).
Например, если пользовательские типы:
Надеюсь, что это поможет кому-то.
Я использую этот (http://code.google.com/p/jquery-formatcurrency/) на своем производственном сайте, а не были проблемы с ним, и api достаточно прост.
Простое решение с использованием только Javascript.
String.prototype.reverse = function () {
return this.split("").reverse().join("");
}
function reformatText(input) {
var x = input.value;
x = x.replace(/,/g, ""); // Strip out all commas
x = x.reverse();
x = x.replace(/.../g, function (e) {
return e + ",";
}); // Insert new commas
x = x.reverse();
x = x.replace(/^,/, ""); // Remove leading comma
input.value = x;
}
.currencyinput {
border-color: #98969a;
border-style: solid;
border-width: 0.5px;
display: inline-block;
}
.currencyinput input {
border-style: solid solid solid none;
border-width: 0 0 0 thin;
}
<span class="currencyinput">$<input type="text" onkeyup="reformatText(this)" name="currency"></span>