用户名输入代码中不允许有空格

Eas*_*yBB 0 jquery

可能重复:
查看jQuery输入是否有空格

我没有空格的这段代码。好吧,至少我认为这是注册用户名中没有空格的问题。有人可以帮我将其留空吗?

(function($){
    $(function(){
        $('#username_reg').keyup(function(){
            str = $(this).val(),
            str = str.replace(/\s/g,''),
            $(this).val(str),
            alert('No space are allowed in usernames');
        });
    });
})(jQuery);
Run Code Online (Sandbox Code Playgroud)

我刚才也尝试了这段代码,没有用:/

$("input#username_reg").on("keydown", function (e) {
    return e.which !== 32;
 });?
Run Code Online (Sandbox Code Playgroud)

nnn*_*nnn 5

我相信以下代码将满足您的要求:

jQuery(function($){
    $('#username_reg').keyup(function(e){
        if (e.which === 32) {
            alert('No space are allowed in usernames');
            var str = $(this).val();
            str = str.replace(/\s/g,'');
            $(this).val(str);            
        }
    }).blur(function() {
        var str = $(this).val();
        str = str.replace(/\s/g,'');
        $(this).val(str);            
    });
});
Run Code Online (Sandbox Code Playgroud)

也就是说,在键入键时,如果键是空格,则显示带有消息的警报并删除该空格。而且,在模糊时,请删除字段中可能存在的所有空格-因为用户可以在不使用键盘的情况下复制/粘贴或拖放。

演示:http//jsfiddle.net/wP8mP/

编辑:如果这是我的代码,我可能会完全删除警报-我只是通过event.preventDefault()按下按键防止输入空格并且在复制/粘贴的情况下仍会删除模糊的空格。

$('#username_reg').keydown(function(e){
    if (e.which === 32) {
        e.preventDefault();      
    }
}).blur(function() {
    // for variety's sake here's another way to remove the spaces:
    $(this).val(function(i,oldVal){ return oldVal.replace(/\s/g,''); });         
});
Run Code Online (Sandbox Code Playgroud)

演示:http//jsfiddle.net/wP8mP/1/