JavaScript:文本域事件处理

时间:2023-03-09 06:53:01
JavaScript:文本域事件处理

文本域往往可以输入大量的文字信息,但是在文本域上有一些键盘的处理事件:onkeydown、onkeypress、onkeyup。

范例一:观察文本域的键盘事件处理

代码如下:

JavaScript:文本域事件处理

效果图如下:

默认状态:                    任意输入一个字,操作键盘时:

JavaScript:文本域事件处理 JavaScript:文本域事件处理

范例二:限制文本域数字的长度,当文字超过时,提交按钮被禁止使用。

代码如下:

JavaScript:文本域事件处理

<!doctype html>
<html lang = "zh-CN">
<head> <meta charset="utf-8">
<meta name="description" content="this is a checkbox example">
<meta name="keywords" content="checkbox,html,js">
<title>文本域事件的测试</title> <script type="text/javascript">
window.onload = function () { document.getElementById("textArea").addEventListener('keypress',function(){
calfontCount();
},false); document.getElementById("textArea").addEventListener('keydown',function(){
calfontCount();
},false); document.getElementById("textArea").addEventListener('keyup',function(){
calfontCount();
},false);
} //计算文字个数
function calfontCount () {
var textSpan = document.getElementById("textSpan");
var textArea = document.getElementById("textArea");
var max = 20; //文字总个数
var cur = textArea.value.length ; //当前文字个数
if (cur<= max) {
textSpan.innerHTML = "还允许输入"+(max-cur)+"个字";
document.getElementById("subBut").disabled = false;
}else{
textSpan.innerHTML = "还允许输入<font color='red'>"+(max-cur)+"</font>个字";
document.getElementById("subBut").disabled = true;
}
}
</script> </head>
<body>
<form action="">
请输入你自己的评价:
<div>
<textarea id="textArea" cols="30" rows="3"></textarea>
<div><span id="textSpan">还允许输入20个字</span></div>
</div>
<div>
<input type="submit" id="subBut" value="提交">
</div>
</form>
</body>
</html>

效果图如下:

默认状态时:

JavaScript:文本域事件处理

输入个数小于20数,提交按钮可操作时:

JavaScript:文本域事件处理

输入个数大于20数,超出数字变色,提交按钮也变色,此时不可操作时:

JavaScript:文本域事件处理