如何禁用/删除输入字段上的第一个空格?

大家早上好!

我有一个案例,我应该阻止用户输入空格作为输入字段的第一个字符。

我在这里有一个演示: http : //jsbin.com/foyetolo/2/edit

它仅在您第一次点击空格键时有效。 当您开始键入其他字符并在输入中选择整个文本(ctrl + a)然后点击空格键时,它会在输入字段的开头添加空格。

那么,如何在keypress / keydown上检查第一个字符是否为空格,返回false并且不允许它将空格键入第一个字符?

您可以通过检查键是否为space并且selection start为0来执行此操作,如下所示:

 $(function() { $('body').on('keydown', '#test', function(e) { console.log(this.value); if (e.which === 32 && e.target.selectionStart === 0) { return false; } }); }); 

演示链接

当一个键被取消时,这个jQuery函数选择所有文本输入,从字符串的开头删除所有空格并替换输入的值:

   

当使用keyup()直接替换空格时,我不建议使用trim(),因为当您在单词后面键入空格时,它将在您开始编写下一个单词之前被删除。

尝试类似的东西

 $('input').keyup(function () { if($(this).val() == '') { if(event.keyCode == 32) { return false; } } } 

这将检查当前值,然后它将运行该函数。 使用密钥,在密钥被按下后检查值。 如果你使用keydown,它仍然具有值。 按键将在按键事件过后获得值。

或者正如其他人告诉你的那样,要始终保持价值。 无论用户是否输入空格字符,您都可以使用jQuery trim()方法修剪该值。

 $('input').keyup(function () { $(this).val($.trim($(this).val())); } 

这将添加当前输入字段的值的修剪forms。