在textarea中添加文本时,我不想在'&'之后允许'*'。
我想查看Asterisk按键,是否添加了上一个符号'&',如果是,用户无法添加'*'。
请帮助,如何继续。
答案 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;
};
当然,这并不能取代良好的服务器端验证