Javascript 如何使用jquery为负整数显示类似excel的方括号
我正在开发一个金融计算器,我想用括号括起数值,比如excel中的负数,我已经在为十进制值做自定义属性actual val,并显示舍入值,所以很难管理其他属性,或者在检查每个输入和结果时应用,因为有成千上万的计算 比如说Javascript 如何使用jquery为负整数显示类似excel的方括号,javascript,jquery,html,Javascript,Jquery,Html,我正在开发一个金融计算器,我想用括号括起数值,比如excel中的负数,我已经在为十进制值做自定义属性actual val,并显示舍入值,所以很难管理其他属性,或者在检查每个输入和结果时应用,因为有成千上万的计算 比如说 var value = -20000 // actual value 所以如果我为输入设置值 $("#input").val(value); 我想展示一下 (20000) 但是当我得到值时,所以不需要在$(“#input”).val()中使用括号,需要相同的结果你想要的是整
var value = -20000 // actual value
所以如果我为输入设置值
$("#input").val(value);
我想展示一下
(20000)
但是当我得到值时,所以不需要在$(“#input”).val()中使用括号,需要相同的结果你想要的是整数周围的括号,但你不能用JS添加它们,这是你说的吗 您是否在之前和之后尝试过CSS
HTML:
这样,您就可以用括号将每个值括起来,而不会有任何问题
可以通过模糊功能将值从负号(-)更改为大括号。挑战是在触发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);
我的想法是从中重写val()
事件
我创建了一个jsFiddle来演示这一点。请注意,在按钮单击事件处理程序中,我们只是使用$('#myNumber').val()
来获取正确的值。
请注意,您仍然需要处理无效数字的情况
希望这有帮助 只有当它为负值时才应适用。此外,问题提到“输入”(使用.val()
not.text()`)-您能否确认css是否也会处理输入(使用before+after)?OP可能不需要“输入”,纯文本就足够了,在这种情况下,这可能是最理想的。如果您可以检查值是否为负值,您可以给出div
或任何类。这些类是您在
之前
和之后打开时使用的类。但是如果你能识别出他们,这就可以了。我在编辑之前读了这个问题,没有看到破折号的替换。你的小提琴看起来像史诗。即使我没有这个用例,如果我需要类似的东西,我也会使用它!
p::before {
content: "(";
}
p::after {
content: ")";
}
(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);