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