autoNumeric不允许从数字键盘/ Internet Explorer

时间:2018-03-16 08:47:49

标签: javascript jquery

我在输入字段上设置autoNumeric并使用这些设置

[
    {"digitGroupSeparator" : ""},
    {"decimalCharacter" : ","},
    {"modifyValueOnWheel" : false},
    {"minimumValue" : "0"}
]

小数点分隔符是逗号。当在常规键盘上按下逗号时,它将显示在输入字段上。但是,在数字键盘上按下时,不会显示任何内容。这只发生在IE上,在Chrome / FF上它可以正常工作,出现逗号。

我在此服务上测试了IE和Chrome的JavaScript代码:http://unixpapa.com/js/testkey.html

他们是完全相同的。普通键盘逗号按下:

keydown  keyCode=188       which=188       charCode=0        
keypress keyCode=44  (,)   which=44  (,)   charCode=44  (,)  
keyup    keyCode=188       which=188       charCode=0 

数字键盘逗号按下:

keydown  keyCode=110 (n)   which=110 (n)   charCode=0        
keypress keyCode=44  (,)   which=44  (,)   charCode=44  (,)  
keyup    keyCode=110 (n)   which=110 (n)   charCode=0   

这应该作为autoNumeric的错误提交吗?它也应该从数字键盘接受分隔符。有可能解决方法吗?

编辑:这是一个要测试的JSFiddle:https://jsfiddle.net/g1wumdt7/3/

1 个答案:

答案 0 :(得分:2)

使用"decimalCharacterAlternative": "."按下时将替代主十进制字符。

这里有更多options



var anSettings = {
  "digitGroupSeparator" : "",
  "decimalCharacter" : ",",
  "modifyValueOnWheel" : false,
  "minimumValue" : "0",
  "decimalCharacterAlternative": "."
};
AutoNumeric.multiple('.an', anSettings);

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/autonumeric/4.1.0/autoNumeric.min.js"></script>
<input type="text" value="" class="an">
&#13;
&#13;
&#13;

更新:感谢@Alex,将AutoNumeric添加到多个字段使用AutoNumeric.mulitple