不要在Javascript中允许“& *”对Textarea

时间:2011-06-02 16:56:38

标签: javascript textarea

在textarea中添加文本时,我不想在'&'之后允许'*'。

我想查看Asterisk按键,是否添加了上一个符号'&',如果是,用户无法添加'*'。

请帮助,如何继续。

3 个答案:

答案 0 :(得分:3)

你可能最好拥有一个在每个“keyup”事件之后运行的通用函数,它通过在&符号之后立即删除任何星号(*)来清理textarea({{ 1}})。这样,即使用户粘贴了包含无效序列(&)的某些内容,它仍将被清除。所以像这样:

&*

答案 1 :(得分:0)

    var input = document.getElementById("input");
    input.addEventListener("keydown", function(e) {
        if(e.shiftKey && e.keyCode === 55 && input.value.substr(input.value.length - 1) === "*") {
            e.preventDefault();
        }
    },false);

这将添加一个事件来检查传入的字符和当前输入中的最后一个字符。如果传入是shift + 55(即shift-7或&)并且输入中的最后一个字符是“*”,则preventDefault将退出事件而不输入刚刚输入的内容。这个例子在IE中不起作用,因为它使用addEventListener,但是相同的方法可以用于完整的跨浏览器的IE attachEvent或事件jQuery事件。

答案 2 :(得分:0)

因为您可以使用上下文菜单,Ctrl-V,Shift-Ins等进行粘贴...

myTextArea.onchange = function() {
  myTextArea.value = myTextArea.value.replace(/&\*/, '&');
  return true;
};

当然,这并不能取代良好的服务器端验证