在输入字段字符串末尾添加特殊字符,jquery自动添加逗号

时间:2013-08-29 08:51:32

标签: javascript jquery css css3

我在keyup事件的字符串末尾添加%符号,首先我得到输入字段的当前值然后拆分('%')然后我使用下面的代码

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

但是这也是在新添加的角色后添加逗号。 jsfiddle

也愿意通过使用css来做到这一点,但条件只是不应该使用任何图像,也不使用定位。(我可以使用:after or:befor)

4 个答案:

答案 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+'%');        
});

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