event对象在IE中是全局对象,而在Firefox中只能作为局部对象,作为参数传入
eg:
$(document).ready(function(){
$("#content").keypress(function(vv){ //这里的vv就是临时变量
var pa=$(this).val().length;
if(pa>=20)
event.returnValue=false;
vv.preventDefault();
});
});
IE中event.KeyCode是键盘上的内码,可读写,而firefox中是vv.which()
IE中阻止浏览器的默认事件是event.returnValue=false;,而Firefox是vv.preventDefault();,但vv.preventDefault();我测试了一下,在IE8下也可以的
<head>
<script type="text/javascript">
$(document).ready(function(){
$("#content").keyup(function(){
var pa = $(this).val().length;
var nums = 20 - pa;
$("#info").html("您还可以输入<span style='color:red;'>" + nums + "</span>个字符!");
});
});
$(document).ready(function(){
$("#content").keypress(function(vv){
var pa=$(this).val().length;
if(pa>=20)
//event.keyCode=0;or event.returnValue=false;
//vv.preventDefault();
});
});
</script>
</head>
<body>
<form name="myform" action="" method="post">
<textarea cols="25" rows="5" name="content" id="content" maxlength="20"></textarea>
<div id="info">您可以输入<span style='color:red;'>20</span>个字符!</div>
</form>
</body>
这段脚本实现的功能是对控件textarea输入字符计数和控制它可输入的长度的,但有个问题,在IE下的写法(//event.keyCode=0;or event.returnValue=false;)是没有问题的,但FF下的写法(vv.preventDefault();),在超过20个字符之后,再按键盘写入preventDefault()这个方法被触发了,写入的字符不能撤销,没触发之前是可以撤销的,但这种写法在IE下是可撤销的