javascript - autoNumeric 不允许从数字键盘/Internet Explorer 输入十进制

标签 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/

最佳答案

使用 "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">

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

关于javascript - autoNumeric 不允许从数字键盘/Internet Explorer 输入十进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49316440/

相关文章:

javascript - jquery ui 错误文本中的动态错误文本未显示

javascript - 如何从curl命令转换为ajax请求

jquery - 如果有子菜单,导航菜单应该向左移动

javascript - WebGL 中 modelMatrix.setTranslate() 和 modelMatrix.translate() 有什么区别?

javascript - 有没有办法可以使用 moment.js 获取(十月的第一个星期日 - 四月的第一个星期日)?

javascript - 仅针对一项功能的策略模式

javascript - cannonjs 与 Three.js 将主体与网格关联起来

javascript - JQuery 选择器不工作,而 javascript DOM 工作正常

php - 需要使用datatable jquery删除搜索字段

javascript - 类型错误 : Cannot use 'in' operator to search for 'SUPPORT_WL_SERVER_CHANGE' in null