1

我有 3 个输入字段,我需要一个简短的 jquery 代码来禁止其中的空格。

<input id='email' type='email' name='email' />
<input id='username' type='text' name='username' />
<input id='pwd' type='password' name='pwd' />
4

3 回答 3

1

尝试这个:

$('input').keypress(function (e) {

    // For detecting charCode, the following is the best cross-browser approach
    var charCode = e.which || e.keyCode;
    if (charCode === 32) {

        // the default action of the event will not be triggered.
        e.preventDefault();
    }
});

这将禁止所有输入中的空格。如果您只想在上述三个或更多输入中禁止空格,只需向所有输入添加一个类,myClass然后调用如下函数:

$('.myClass').keypress(function (e) {
于 2013-04-28T12:26:03.693 回答
1

首先,在 3 中添加一个类input tags

<input id='email' class='disallow' type='email' name='email' />
<input id='username' class='disallow' type='text' name='username' />
<input id='pwd' class='disallow' type='password' name='pwd' />

这是jQuery: -

$(document).ready(function() {
    $('.disallow').keypress(function(e) {
        if(e.which === 32) {
            return false;
        }
    });
});


jsfiddle

于 2013-04-28T12:22:10.793 回答
0

这是用户无法通过粘贴剪贴板中的值来绕过的第一个解决方案——这是用户经常做的事情。

这是用户无法绕过的第一个解决方案,因为他们正在使用浏览器扩展来为他们填写登录名/表单。

既然您提到了 jQuery,那么使用Validate Plugin进行表单验证呢?

或者,如果您想要简单的验证,如何使用提交事件来测试它。

$('form').on('submit', function () {
    var spaceTest = new RegExp('^[^ \t\r\n\v\f]*$');

    //loop through your desired form elements
    $(this).find('.disallow').each(function () {
        var $this = $(this),
            m = spaceTest.exec($this.val());
        // if it fails your test
        if (m === null) {
            // reject

        } else {
           // accept
        }
    });
});

小提琴

于 2013-04-28T12:50:56.547 回答