回車鍵觸發事件的js代碼、input輸入框值改變事件、js數組

1、回車鍵觸發事件的js代碼

      在文本框中輸入完內容後,經常需要按回車,焦點跳到下個文本框,或者觸發按鈕事件
判斷是否按下的爲回車非常簡單:

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

     IE6的onkeypress會接受“回車事件”,而onkeydown不會接受
     IE8的onkeypress不會接受“回車事件”,而onkeydown會接受

     我在IE8上面測試onkeypress和onkeydown都會接受“回車事件”;

...不用糾結於此,兩個都寫上吧
複製代碼 代碼如下:

<input type="text" οnkeypress="EnterPress()" οnkeydοwn="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" οnkeypress="EnterPress(event)" οnkeydοwn="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" οnkeypress="EnterPress(event)" οnkeydοwn="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:增加的元素


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章