我正在开发一个金融计算器,我想在值周围显示括号,例如 excel 中的负数,我已经在为小数值执行自定义属性实际值并显示舍入值,因此很难为此或管理另一个属性应用 if 检查每个输入和结果,因为有数千次计算。
例如。
var value = -20000 // actual value
所以如果我设置输入值
$("#input").val(value);
我想展示
(20000)
但是当我获得值时,不需要 $("#input").val() 中的括号,需要相同的结果
最佳答案
可以通过 blur
函数将值从负号 (-) 更改为大括号。挑战是在触发 val()
事件时获取正确的值。这可以通过覆盖 val()
事件并在那里进行操作来完成。
(function($) {
var originalVal = $.fn.val;
$.fn.val = function(value) {
if (arguments.length >= 1) {
// setter invoked, do processing
return originalVal.call(this, value);
}
//getter invoked do processing
if ($(this).attr('data-type') == 'number') {
var valueToReturn = originalVal.call(this);
return valueToReturn.replace(/\(/g, '-').replace(/\)/g, '');
}
return originalVal.call(this);
};
})(jQuery);
我从 here 中汲取了重写 val()
事件的想法.
我创建了一个 jsFiddle here来证明这一点。请注意,在按钮单击事件处理程序中,我们只是使用 $('#myNumber').val()
来获取正确的值。
请注意,您仍然需要处理无效数字的情况。
希望这有帮助!
关于javascript - 如何使用jquery像excel一样显示负整数的括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34268026/