在文本框中仅允许使用空格,下划线,字母和数字

时间:2013-09-04 12:02:22

标签: jquery html

我有这个代码,它允许文本框中的所有字符。它只允许字母和数字作为第一个字符。现在,我如何只允许空格和下划线以及字母和数字?我只想在jQuery中使用代码。我在这里找到了类似的解决方案,但它不包含jQuery代码。 http://jsfiddle.net/fwcfq/39/

    $('#value').bind('keypress', function(e) {
        if($('#value').val().length == 0){
            if (e.which == 32){//space bar
                e.preventDefault();
            }
            var valid = (e.which >= 48 && e.which <= 57) || (e.which >= 65 && e.which     <= 90) || (e.which >= 97 && e.which <= 122);
            if (!valid) {
               e.preventDefault();
            }
        }
    }); 

2 个答案:

答案 0 :(得分:1)

此代码将执行您想要的操作

$('#value').bind('keypress', function (e) {
    if ($('#value').val().length == 0) {
        if (e.which == 32) { //space bar
            e.preventDefault();
        }
        var valid = (e.which >= 48 && e.which <= 57) || (e.which >= 65 && e.which <= 90) || (e.which >= 97 && e.which <= 122);
        if (!valid) {
            e.preventDefault();
        }
    } else {
        var valid = (e.which >= 48 && e.which <= 57) || (e.which >= 65 && e.which <= 90) || (e.which >= 97 && e.which <= 122 || e.which == 32 || e.which == 95 || e.which == 8);
        if (!valid) {
            e.preventDefault();
        }
    }
});

Fiddle

此方法假定您知道要接受的所有密钥。例如,除非您明确允许,否则将拒绝Enter键。

答案 1 :(得分:0)

你也可以使用许多jQuery插件之一做同样的事情。 示例:http://www.thimbleopensource.com/tutorials-snippets/jquery-plugin-filter-text-input

正则表达式将是:[a-zA-Z _]