Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 2位小数的输入掩码_Javascript_Jquery_Input Mask_Jquery Inputmask - Fatal编程技术网

Javascript 2位小数的输入掩码

Javascript 2位小数的输入掩码,javascript,jquery,input-mask,jquery-inputmask,Javascript,Jquery,Input Mask,Jquery Inputmask,我在使用,我怎样才能得到像22.30或2.15这样的两位小数?类似于在输入掩码上设置的“货币”,但没有逗号(根据值长度自动生成)和货币符号。下面是我尝试过的东西的片段,但不幸的是它们都不起作用,请提供任何帮助、建议、想法、线索和建议 $(文档).ready(函数(){ $(“.decimal”).inputmask('decimal',{rightAlign:true}); $(“.currency”).inputmask('currency',{rightAlign:true}); $(“.

我在使用,我怎样才能得到像
22.30
2.15
这样的两位小数?类似于在输入掩码上设置的“货币”,但没有逗号(根据值长度自动生成)和货币符号。下面是我尝试过的东西的片段,但不幸的是它们都不起作用,请提供任何帮助、建议、想法、线索和建议

$(文档).ready(函数(){
$(“.decimal”).inputmask('decimal',{rightAlign:true});
$(“.currency”).inputmask('currency',{rightAlign:true});
$(“.custom1”).inputmask({mask:***[.*]”,贪婪:false,定义:{'*':{validator:[0-9]“}}},rightAlign:true});
$(“.custom2”).inputmask({'alias':'decimal',rightAlign:true,'groupSeparator':','autoGroup:true});
$(“.custom3”).inputmask({‘别名’:‘十进制’,‘掩码’:“**[.*]”,rightAlign:true});
});






根据定义数字的正确语法是使用
9
字符,因此在您的情况下,这将是
99[.99]
。试试这个:

$(文档).ready(函数(){
$(“.decimal”).inputmask('decimal'{
rightAlign:正确
});
$(“.currency”).inputmask(‘currency’{
rightAlign:正确
});
$(“.custom1”).inputmask({
面具:“99[.99]”,
贪婪:错,
定义:{
'*': {
验证程序:“[0-9]”
}
},
rightAlign:正确
});
$(“.custom2”).inputmask({
'别名':'十进制',
右对齐:对,
“groupSeparator':”,
“自动组”:正确
});
$(“.custom3”).inputmask({
'别名':'十进制',
'面具':“99[.99]”,
rightAlign:正确
});
});







如果您的系统是英文的,请使用以下正则表达式:

$(".mask").inputmask('Regex', {regex: "^[0-9]{1,6}(\\.\\d{1,2})?$"});
如果您的系统是巴西葡萄牙语,请使用以下命令:

进口:

<script
        src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

    <script     src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.15/jquery.mask.min.js"></script>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.inputmask/3.2.6/jquery.inputmask.bundle.min.js"></script>
这是因为在巴西葡萄牙语中,我们写的是“1.000.000,00”,而不是英语中的“1000000.00”,因此如果使用“.”系统将无法理解小数点


就是它,我希望它能帮助别人。我花了很多时间去理解它。

刚刚想出了一个简单高效的方法,没有jQuery或任何库:

HTML:


我称之为西海岸蒸汽压路机(West Coast Steamroller)

.toFixed(2)
试试看这应该是现场输入的你能创建一个现场演示吗?@guradio:请看我的最新帖子,我在那里包括了我的代码片段。我用“$(“.decimal”).inputmask”解决了我的问题({'alias':'decimal','groupSeparator':',','autoGroup':true,'digits':2,'digitsOptional':false,'placeholder':'0.00',rightAlign:true,clearMaskOnLostFocus:!1});“谢谢,我用“$(.decimal”)解决了我的问题。inputmask({'alias':'decimal','groupSeparator':',','autoGroup':true,'digits':2,'digitsOptional':false,'placeholder':'0.00',rightAlign:true,clearMaskOnLostFocus:!1});“我不明白为什么我做
$('decimal.decimal')。输入掩码('decimal;
它不起作用。还有一件事要导入吗?@John如果不看你的代码,我真的帮不了你。我建议你开始自己的问题,包括所有相关的代码。
<input class="mask" type="text" />
$(".mask").inputmask('Regex', {regex: "^[0-9]{1,6}(\\,\\d{1,2})?$"});
<input type="number" oninput="inputChange()" />
function inputChange(){
    let value = Number(document.activeElement.value);
    let pos = document.activeElement.selectionStart;
    document.activeElement.value = value.toFixed(2);

    document.activeElement.selectionStart = pos;
    document.activeElement.selectionEnd = pos;
}