1. 程式人生 > >回車鍵觸發事件的js程式碼、input輸入框值改變事件、js陣列

回車鍵觸發事件的js程式碼、input輸入框值改變事件、js陣列

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:增加的元素