Javascript 所有方法都返回';。autoNumeric不是一个函数-Can';t非格式化数
我正在尝试获取使用autoNumeric格式化的输入数字的原始值,但无法获取,因为我尝试使用的每个方法都返回“.autoNumeric不是控制台中的函数”Javascript 所有方法都返回';。autoNumeric不是一个函数-Can';t非格式化数,javascript,jquery,number-formatting,autonumeric.js,Javascript,Jquery,Number Formatting,Autonumeric.js,我正在尝试获取使用autoNumeric格式化的输入数字的原始值,但无法获取,因为我尝试使用的每个方法都返回“.autoNumeric不是控制台中的函数” $(文档).ready(函数(){ 新的自动数字(“#输入”,AutoNumeric.getPredefinedOptions().numericPos.dotDecimalCharCommaSeparator); $('#input')。在('keyup',function()上{ $('输出').val($('输入').autoNume
$(文档).ready(函数(){
新的自动数字(“#输入”,AutoNumeric.getPredefinedOptions().numericPos.dotDecimalCharCommaSeparator);
$('#input')。在('keyup',function()上{
$('输出').val($('输入').autoNumeric('获取字符串');
})
})
您似乎一直在阅读AutoNumeric插件旧API的文档。该插件已被重写,因为它们独立于jQuery,这意味着
.autoNumeric()
不再是有效的jQuery方法
您要做的是在运行时存储AutoNumeric实例,然后只需在实例上使用检索其字符串值:
// Store instance
var autoNumericInstance = new AutoNumeric('#input', AutoNumeric.getPredefinedOptions().numericPos.dotDecimalCharCommaSeparator);
$('#input').on('keyup', function() {
// Retrieve instance numeric string value
$('#output').val(autoNumericInstance.getNumericString());
});
请参见此处的概念验证示例(或):
$(文档).ready(函数(){
var autonumeriinstance=新的自动数字(“#输入”,AutoNumeric.getPredefinedOptions().numericPos.dotDecimalCharCommaSeparator);
$('#input')。在('keyup',function()上{
$('#output').val(autonumeriInstance.getNumericString());
});
});代码>
@Terry对于所问问题的回答完全正确,但是我建议不要在#输入键控
事件上使用事件侦听器,因为自动数字
并不总是更新每个键控
上的元素值,例如当用户输入了一个坏键时,即钥匙A
如果要仅在数值字符串真正更改时才使用数值字符串更新#output
元素,则应收听自定义事件'autoNumeric:rawValueModified'
,因此:
而不是:
$('#input').on('keyup', function() {
$('#output').val(autoNumericInstance.getNumericString());
});
你应使用:
const outputElm = document.querySelector('#output');
const inputElm = document.querySelector('#input');
inputElm.addEventListener('autoNumeric:rawValueModified', e => {
outputElm.value = e.newRawValue;
});
由发送的有关的文档。
还有,如何将回调
添加到所有get*
函数。这与并发性有什么关系?听起来你缺少了对插件的引用,或者你把它放在了错误的地方。键入货币并意外地点击它,认为它是货币。你的错误消息表明autoNumeric()
不是jQuery方法(这是真的,它不依赖于jQuery)。您似乎已经阅读了旧文档(你能给我指一下新文档的方向吗?我看得很清楚,在任何地方都找不到与非jquery版本匹配的内容。我只需要知道使用什么方法从输入中获取数字字符串value@nick.cook请看我的答案。p/s:他们的文档非常复杂,但这并不奇怪,因为它是一个非常强大的库稀罕。检查他们文档中的部分。谢谢。不知道需要存储为的实例variables@nick.cook例如,如果它是一次性设置,并且您不打算再从中设置/获取,则不必存储它们。但是如果您以后需要引用它们,则必须这样做。