Javascript Jquery动态输入字段中印度货币的输入屏蔽

Javascript Jquery动态输入字段中印度货币的输入屏蔽,javascript,jquery,input,masking,Javascript,Jquery,Input,Masking,我想在输入框中写入时,按照印度货币显示掩码 我正在使用InputMask jquery进行屏蔽: 我想,无论用户在哪里尝试写下文本输入的金额,然后它应该添加自动逗号,按照印度货币格式 我试图通过使用以下代码来实现这一点 <input type="text" name="amount" class="amount_field"/> $('.amount_field').inputmask("numeric", { radixPoint: ".",

我想在输入框中写入时,按照印度货币显示掩码

我正在使用InputMask jquery进行屏蔽:

我想,无论用户在哪里尝试写下文本输入的金额,然后它应该添加自动逗号,按照印度货币格式

我试图通过使用以下代码来实现这一点

<input type="text" name="amount" class="amount_field"/>
$('.amount_field').inputmask("numeric", {
            radixPoint: ".",
            groupSeparator: ",",
            digits: 3,
            autoGroup: true,
            prefix: '',
            rightAlign: false,
            allowMinus: false,
            // oncleared: function () { self.Value(''); }
        });

$('.amount_字段').inputmask(“数字”{
半径点:“.”,
分组分隔符:“,”,
数字:3,
自动组:是的,
前缀:“”,
rightAlign:false,
allowMinus:false,
//oncleared:function(){self.Value(“”);}
});
电流输出: 2500000

所需产出: 2500万

按照印度货币,我需要昏迷,先是在3点之后,然后是2点


任何帮助都将受到感谢。

我已经创建了自己的。希望这对你也有用

var number = document.getElementsByClassName("amount_field")[0].value;
number.toLocaleString('en-IN');
$(文档).ready(函数(){
$(“.amount\u字段,amount\u字段2”).keyup(函数(){
convertToINRFormat($(this).val(),$(this));
});
convertToINRFormat($(“#金额#字段”).val(),$(“#金额#字段”);
convertToINRFormat($(“#amount_field2”).val(),$(“#amount_field2”);
});
函数转换为InrFormat(值,输入字段){
变量编号=编号(值.替换(/,/g,”);
//印度使用千/十万/百万分之二的分离器
$('#result').html(number.tolocalString('en-IN'));
$('#result1').html(number.toLocaleString('en-IN'){
最大分数位数:2,
风格:“货币”,
货币:“印度卢比”
}));
$(inputField).val(number.toLocaleString('en-IN');
}

我通过更改事件解决了此问题:

<input type="text" name="masknumber" id="masknumber" onchange="return changeData(this.value);">
<script type="text/javascript">
function changeData(x){
    alert(x);
    x=x.toString();
    var lastThree = x.substring(x.length-3);
    var otherNumbers = x.substring(0,x.length-3);
    if(otherNumbers != '')
    lastThree = ',' + lastThree;
    var res = otherNumbers.replace(/\B(?=(\d{2})+(?!\d))/g, ",") +  lastThree;
    document.getElementById('masknumber').value = res;
}
</script>

函数更改数据(x){
警报(x);
x=x.toString();
var lastThree=x.子串(x.长度-3);
var otherNumbers=x.substring(0,x.length-3);
如果(其他数字!='')
lastThree=','+lastThree;
var res=otherNumbers.replace(/\B(?=(\d{2})+(?!\d))/g,“,”)+lastThree;
document.getElementById('masknumber')。value=res;
}

我已经用简单的方法解决了您的问题,您可以试试

注意:在最新版本的InputMask中添加了印度货币样式。请在此处查看最新版本:


输入掩码((,99){1}(,999){1}),
{
positionCaretOnClick:“radixFocus”,
_辐射度:是的,
半径点:“.”,
数字输入:正确,
占位符:“0”
}
).mask(“.inputmasking”);


小提琴的工作示例:

我在寻找动态掩蔽,而不是静态掩蔽。像这样。但是印度货币。请解释你的答案。代码式答案并不总是对学习者有帮助。使用按钮添加更多有用的文本。您正在使用哪个插件?请在问题中添加有关
inputmask()
函数详细信息的链接。这可以帮助@techie_28了解一些情况。谢谢,是的,这解决了一个问题。请告知您的答案。但如果文本字段处于编辑模式,该怎么办。表示用户有一些预填充值。然后格式需要以正确的格式显示,屏蔽需要工作。如果多个输入字段具有相同的类和预填充值,会发生什么情况。?请不要为每个都使用。需要多次编写该函数???不,您不需要多次编写该函数,也不需要循环。是的,这是真的。我很感激你的回答。但我在寻找精确的掩蔽规则,而不是jquery模糊、键控或任何事件。
<input type="text" class="inputmasking" value=""/>
<input type="text" class="inputmasking" value=""/>
<input type="text" class="inputmasking" value=""/>

<script type="text/javascript">
Inputmask("(,99){*|1}(,999){1|1}",
     {
         positionCaretOnClick: "radixFocus",
         _radixDance: true,
         radixPoint: ".",
         numericInput: true,
         placeholder: "0"
     }
 ).mask(".inputmasking");
</script>