回車鍵觸發事件的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:增加的元素