我在keyup事件的字符串末尾添加%符号,首先我得到输入字段的当前值然后拆分('%')然后我使用下面的代码
$('.percent input[type=text]').val(str+'%');
但是这也是在新添加的角色后添加逗号。 jsfiddle
也愿意通过使用css来做到这一点,但条件只是不应该使用任何图像,也不使用定位。(我可以使用:after or:befor)
答案 0 :(得分:1)
IMO的问题是拆分功能。 试试这个:
$('.percent input[type=text]').on('keyup',function(){
var oldstr=$('.percent input[type=text]').val();
var str=oldstr.replace('%','');
$('.percent input[type=text]').val(str+'%');
});
答案 1 :(得分:0)
Javascript .split()
方法返回逗号分隔数据,这就是您的数据以逗号分隔的原因。
如果您只想删除可以使用的第一个符号.substr()
- 请阅读here。
答案 2 :(得分:0)
$('.percent input[type=text]').on('keyup',function(e){
var oldstr=$('.percent input[type=text]').val();
var tokens = oldstr.split('%');
var suffix = tokens.pop() + '%';
var prefix = tokens.join("");
$('.percent input[type=text]').val(prefix+suffix);
});
JS小提琴: http://jsfiddle.net/uU8Lf/4/
答案 3 :(得分:0)
现在有点晚了,但我不禁注意到在两个答案中不断重复使用元素的类/类型。在'.on'回调函数中使用'this'关键字是不是有益/最佳做法,如下所示:
$('.percent input[type=text]').on('keyup',function(){
var oldstr=$(this).val();
var str=oldstr.replace('%','');
$(this).val(str+'%');
});
如果我错了,请纠正我,是的,我在这里挑剔:)