Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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 所有方法都返回';。autoNumeric不是一个函数-Can';t非格式化数_Javascript_Jquery_Number Formatting_Autonumeric.js - Fatal编程技术网

Javascript 所有方法都返回';。autoNumeric不是一个函数-Can';t非格式化数

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

我正在尝试获取使用autoNumeric格式化的输入数字的原始值,但无法获取,因为我尝试使用的每个方法都返回“.autoNumeric不是控制台中的函数”

$(文档).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例如,如果它是一次性设置,并且您不打算再从中设置/获取,则不必存储它们。但是如果您以后需要引用它们,则必须这样做。