javascript

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下是可撤销的

原文地址:https://www.cnblogs.com/zqstc/p/1606901.html