0

我有这段代码,它允许文本框中的所有字符。它只允许字母和数字作为第一个字符。现在,我如何只允许空格和下划线以及字母和数字?我只想要 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();
            }
        }
    }); 
4

2 回答 2

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();
        }
    }
});

小提琴

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

于 2013-09-04T12:10:23.747 回答
0

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

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

于 2013-09-04T12:11:55.517 回答