我在 keyup 事件的字符串末尾添加 % 符号,首先我获取输入字段的当前值,然后 split('%') 然后我使用以下代码
$('.percent input[type=text]').val(str+'%');
但这也在新添加的字符后添加了逗号。 jsfiddle
也很想通过使用 css 来做到这一点,但条件是不应该有任何图像用于它既不使用定位。(我可以使用:after 或:befor)
我在 keyup 事件的字符串末尾添加 % 符号,首先我获取输入字段的当前值,然后 split('%') 然后我使用以下代码
$('.percent input[type=text]').val(str+'%');
但这也在新添加的字符后添加了逗号。 jsfiddle
也很想通过使用 css 来做到这一点,但条件是不应该有任何图像用于它既不使用定位。(我可以使用:after 或:befor)
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+'%');
});
$('.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 Fiddle: http://jsfiddle.net/uU8Lf/4/
Javascript.split()
方法返回逗号分隔的数据,这就是为什么你的数据是逗号分隔的。如果您只想删除您可以使用的第一个符号.substr()
- 请在此处阅读。
现在有点晚了,但是我不禁注意到元素的类/类型在两个答案中的不断重用。在“.on”回调函数中使用“this”关键字是否有益/最佳实践,如下所示:
$('.percent input[type=text]').on('keyup',function(){
var oldstr=$(this).val();
var str=oldstr.replace('%','');
$(this).val(str+'%');
});
如果我错了,请纠正我,是的,我在这里很挑剔:)