Запретить ввод пробелов в текстовом поле HTML с помощью jQuery

я получил HTML форма, которую пользователи могут ввести. Как я могу использовать javascript/jQuery для немедленного и плавного удаления пробелов из текстового поля при вводе? Я исследовал .val() метод jQuery и придумал это:

$('input').keydown(function() {
    str = $(this).val();
    str = str.replace(/s/g,'');
    $(this).val(str);
});

Это делает странные вещи для удаления текста, и пробелы все еще появляются при нажатии клавиши, они просто удаляются при следующем нажатии клавиши. Есть предложения?

2 ответов


вы можете предотвратить его добавление вообще, проверив, нажата ли клавиша пробел и возврат false если так:

​$("input").on("keydown", function (e) {
    return e.which !== 32;
});​​​​​

здесь пример.


попробуйте использовать keyup

Live Demo

$('input').keyup(function() {
    str = $(this).val();
    str = str.replace(/\s/g,'');
    $(this).val(str);
});