onkeypress 检查后不要在文本区域中写入字符
Don't write a character in a textarea after a onkeypress check
我有一个带有 onkeypress 函数调用的文本区域,我想检查行数是否超过 10:如果是,我不想写字符。如何在功能检查后“停止”写入?
<textarea id="textAr" maxlength="350" rows="6" onkeypress="check(this)"></textarea>
function checkLines(textArea){
var text = textArea.value;
var linesNumber = text.split("\n").length;
// alert("number of rows is: " + linesNumber);
if(linesNumber > 10){
???
}
}
要停止写入字符,您可以使用元素的 event.preventDefault() method. We can do this by adding an event listener 代替 onkeypress 属性。
function checkLines(event){
var text = this.value;
var linesNumber = text.split("\n").length;
// alert("number of rows is: " + linesNumber);
if(linesNumber > 10){
event.preventDefault();
}
}
document.querySelector("#textAr").addEventListener("keypress", checkLines);
您还可以使用 event.key 获取按下的键。这将允许您仅使用回车键 ("Enter"
).
来防止换行
if(linesNumber > 10 && event.key == "Enter"){
event.preventDefault();
}
我有一个带有 onkeypress 函数调用的文本区域,我想检查行数是否超过 10:如果是,我不想写字符。如何在功能检查后“停止”写入?
<textarea id="textAr" maxlength="350" rows="6" onkeypress="check(this)"></textarea>
function checkLines(textArea){
var text = textArea.value;
var linesNumber = text.split("\n").length;
// alert("number of rows is: " + linesNumber);
if(linesNumber > 10){
???
}
}
要停止写入字符,您可以使用元素的 event.preventDefault() method. We can do this by adding an event listener 代替 onkeypress 属性。
function checkLines(event){
var text = this.value;
var linesNumber = text.split("\n").length;
// alert("number of rows is: " + linesNumber);
if(linesNumber > 10){
event.preventDefault();
}
}
document.querySelector("#textAr").addEventListener("keypress", checkLines);
您还可以使用 event.key 获取按下的键。这将允许您仅使用回车键 ("Enter"
).
if(linesNumber > 10 && event.key == "Enter"){
event.preventDefault();
}