2

我在 keyup 事件的字符串末尾添加 % 符号,首先我获取输入字段的当前值,然后 split('%') 然后我使用以下代码

$('.percent input[type=text]').val(str+'%');

但这也在新添加的字符后添加了逗号。 jsfiddle

也很想通过使用 css 来做到这一点,但条件是不应该有任何图像用于它既不使用定位。(我可以使用:after 或:befor)

4

4 回答 4

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+'%');        
        });
于 2013-08-29T08:55:35.367 回答
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 Fiddle: http://jsfiddle.net/uU8Lf/4/

于 2013-08-29T09:02:23.613 回答
0

Javascript.split()方法返回逗号分隔的数据,这就是为什么你的数据是逗号分隔的。如果您只想删除您可以使用的第一个符号.substr()- 请在此处阅读。

于 2013-08-29T08:57:00.583 回答
0

现在有点晚了,但是我不禁注意到元素的类/类型在两个答案中的不断重用。在“.on”回调函数中使用“this”关键字是否有益/最佳实践,如下所示:

$('.percent input[type=text]').on('keyup',function(){
    var oldstr=$(this).val();
    var str=oldstr.replace('%',''); 
    $(this).val(str+'%');        
});

如果我错了,请纠正我,是的,我在这里很挑剔:)

于 2014-05-14T09:10:38.207 回答