将用户输入“拦截”到文本框中并将其删除

时间:2010-06-08 01:01:45

标签: javascript jquery text input

我有一个文本框,我想对其进行一些验证。目前我有这段代码:

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 个答案:

答案 0 :(得分:5)

您可以使用keyup event执行此操作,如下所示:

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

每次按键时都会检查并删除无效字符,因此无效字符不会留在框中,会立即删除。