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



$(document).ready(function() {

    new AutoNumeric('#input', 	AutoNumeric.getPredefinedOptions().numericPos.dotDecimalCharCommaSeparator);

    $('#input').on('keyup', function() {
    	$('#output').val($('#input').autoNumeric('getString'));
    })
})

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.5/angular.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.5/angular-resource.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/autonumeric/4.0.3/autoNumeric.js"></script>

<input id="input" name="basicPayPerYearInput" type="text" value="123456.78" placeholder="0.00" class="currencyInput validate">

<input type="text" for="basicPayPerYearInput" id="output">





我什至无法像大多数文档中那样使用$(selector).autoNumeric()正确初始化输入,因此我不得不使用上述“新的AutoNumeric”,这在某些文档中也很奇怪,并且是唯一可行的方法:

最佳答案

似乎您已经在阅读AutoNumeric插件的旧API的文档。该插件已被重写,因为它们独立于jQuery,这意味着.autoNumeric()不再是有效的jQuery方法。

您要做的是在运行时存储AutoNumeric实例,然后在实例上使用getter method .getNumericString()检索其字符串值:

// Store instance
var autoNumericInstance = new AutoNumeric('#input', AutoNumeric.getPredefinedOptions().numericPos.dotDecimalCharCommaSeparator);

$('#input').on('keyup', function() {
    // Retrieve instance numeric string value
    $('#output').val(autoNumericInstance.getNumericString());
});


请参阅此处的概念验证示例(或updated fiddle):



$(document).ready(function() {

    var autoNumericInstance = new AutoNumeric('#input', AutoNumeric.getPredefinedOptions().numericPos.dotDecimalCharCommaSeparator);

    $('#input').on('keyup', function() {
    	$('#output').val(autoNumericInstance.getNumericString());
    });

});

<script src="https://cdnjs.cloudflare.com/ajax/libs/autonumeric/4.0.3/autoNumeric.js"></script>
<script src="https://code.jquery.com/jquery-3.2.1.js"></script>
<input id="input" name="basicPayPerYearInput" type="text" value="123456.78" placeholder="0.00" class="currencyInput validate">

<input type="text" for="basicPayPerYearInput" id="output">

10-06 01:34