如何在多个输入中禁止空格?

时间:2013-04-28 12:19:55

标签: jquery

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

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

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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) {

答案 2 :(得分: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
        }
    });
});

fiddle