«Перехват» ввода пользователя в текстовое поле и удаление его - PullRequest
3 голосов
/ 08 июня 2010

У меня есть текстовое поле, в котором я хотел бы выполнить некоторую проверку.На данный момент у меня есть этот код:

function updateChanger() {

    // Validate input
    var likeMessage = validateInput($("#like").val());

    alert(likeMessage);
}

function validateInput(input) {
    input = input.replace(/[^a-zA-Z0-9:\(\/\)\s\.,!~]/g, "");
    return input;
}

Это успешно удаляет ненужные символы в переменной likeMessage, но символ все еще вводится в текстовое поле.Я бы хотел, чтобы это не происходило.

Я знаю, что это будет иметь какое-то отношение к $("#like").val(), но единственное, что я могу придумать, это просто отрезать конечный символ из значения текстового поля,Достаточно?

Спасибо за любую помощь!

1 Ответ

5 голосов
/ 08 июня 2010

Вы можете сделать это, используя keyup событие , например:

$("#like").keyup(function() {
  $(this).val($(this).val().replace(/[^a-zA-Z0-9:\(\/\)\s\.,!~]/g, ""));
});

Это проверяет и удаляет недопустимые символы каждый раз, когда они отпускают клавишу, поэтому недействительный символ никогда не останется в поле, он будет немедленно удален.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...