我使用此插件: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函数?而不是初始化后得到的变量?
答案 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();