回车键触发事件的js代码、input输入框值改变事件、js数组

来源:互联网 发布:logo设计软件免费版 编辑:程序博客网 时间:2024/05/16 10:23

1、回车键触发事件的js代码

      在文本框中输入完内容后,经常需要按回车,焦点跳到下个文本框,或者触发按钮事件
判断是否按下的为回车非常简单:

function EnterPress(){   if(event.keyCode == 13){    ...   } }

     IE6的onkeypress会接受“回车事件”,而onkeydown不会接受
     IE8的onkeypress不会接受“回车事件”,而onkeydown会接受

     我在IE8上面测试onkeypress和onkeydown都会接受“回车事件”;

...不用纠结于此,两个都写上吧
复制代码 代码如下:

<input type="text" onkeypress="EnterPress()" onkeydown="EnterPress()" />


    在IE8上面这样写会调用两次EnterPress()函数;

     但是,到了FF下面,又会出现矛盾.FF是onkeypress和onkeydown都接受"回车事件"的.
     同时,为了兼容FF下面能获得event,需要这样写:
     复制代码 代码如下:
 

function EnterPress(e){ //传入 event   var e = e || window.event;   if(e.keyCode == 13){    ...   } }

     那么,只要给任意的一个事件内传参数 event,另外一个不传参数,即可以让FF只执行一次了:
     复制代码 代码如下:

<input type="text" onkeypress="EnterPress(event)" onkeydown="EnterPress()" /> 

综上,兼容IE和FF:
复制代码 代码如下:

<head> <script> function EnterPress(e){ //传入 event     var e = e || window.event;     if(e.keyCode == 13){     document.getElementById("txtAdd").focus();     } } </script> </head> <body> <input type="text" id="txtName" onkeypress="EnterPress(event)" onkeydown="EnterPress()" /> <input type="text" id="txtAdd" /> </body> 


2、input输入框值改变事件

        当一个HTML元素的属性改变的时候,都能通过onpropertychange来捕获。例如:

< input name="text1" id="text1" />

      对象的value属性被页面的脚本修改的时候,onchange无法捕获到,而onpropertychange却能够捕获。

      具体理解为:onpropertychange能及时捕获属性值的变化,而onchange在属性值改变时只有通过鼠标执行某些操作才能激活该事件!
 
      但onpropertychange只有IE支持,好像firefox的事件oninput,效果和IE的onproperchange相同(没试)。

3、js数组增删

var changeValueObjects = new Array();changeValueObjects.splice(i,1);  //i:数组的下标 1:删除的个数changeValueTemp.push(changeValue);  //changeValue:增加的元素