AutoNumeric-在Ajax调用后设置一个值

时间:2018-11-29 10:47:41

标签: javascript jquery

我使用此插件:https://github.com/autoNumeric/autoNumeric

我使用此初始化:

AutoNumeric.multiple('.autonumeric-number', AutoNumericConfigDecimal);
AutoNumeric.multiple('.autonumeric-integer', AutoNumeric.getPredefinedOptions().integerPos);

然后,我有一个Ajax调用,我需要设置输入的新值。问题是:我无法使用插件的.set()方法,因为它需要具有初始化后获得的变量。

由于我使用了多个选择器,因此无法使用此变量。

现在,我尝试再次初始化:

// element already has mask
<input id="element" class="autonumeric-integer" />

// after ajax call
var element = new AutoNumeric('#element', AutoNumericConfig);
element.set(value);

但是它将我在输入中写的内容加倍,“ 2”变成“ 22”。

是否可以仅使用DOM元素使用AutoNumeric函数?而不是初始化后得到的变量?

3 个答案:

答案 0 :(得分:1)

从文档中,我发现有一个静态方法可以找到处理名为getAutoNumericElement的元素的AutoNumeric实例

因此,如果您拥有id或对节点的引用,则可以将其传递给此方法,然后可以在其上调用set()

AutoNumeric.multiple('.autonumeric-integer', AutoNumeric.getPredefinedOptions().integerPos);


document.querySelector('button').addEventListener('click', function(){
// assuming you can target the elements based on id
  const element = AutoNumeric.getAutoNumericElement('#element3')
  element.set(13);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/autonumeric/4.1.0/autoNumeric.min.js"></script>

#element1: <input id="element1" class="autonumeric-integer" /><br/>
#element2: <input id="element2" class="autonumeric-integer" /><br/>
#element3: <input id="element3" class="autonumeric-integer" /><br/>
#element4: <input id="element4" class="autonumeric-integer" />

<button> update #element3 </button>

答案 1 :(得分:0)

这种单线也应该为您工作。

AutoNumeric.set('#element','2');

答案 2 :(得分:0)

你可以使用:

new AutoNumeric('#revenue', {
    decimalPlaces: 0,
    unformatOnSubmit: true
}); // ? add option `unformatOnSubmit:true`

或使用:

var revenue = AutoNumeric.getAutoNumericElement('.revenue');
var intRevenue = revenue.get();