一、屏蔽字符(監聽keypress事件)html
var username = document.forms["form"].username; username.onkeypress = function(e){ var charcode = e.charCode; if(!/\d/.test(String.fromCharCode(charcode)) && charcode>9 && !e.ctrlKey){ e.preventDefault(); } }
注意:
一、由於Firefox和Safari(3.1版本以前)會對上下鍵、左右鍵、delete鍵和退格鍵觸發keypress事件,在Firefox中非字符的charCode的值爲0,在Safari(3.1版本以前)charCode的值爲8。爲了避免要屏蔽那些非字符鍵,因此有charCode>9的條件;
二、爲了避免屏蔽用戶輸入ctrl+C或者Ctrl+V等組合鍵,判斷用戶沒有按下Ctrl鍵,因此有!e.ctrlKey的條件。chrome
二、操做剪切板post
IE、Firefox、Safari都支持剪切板,但Opera不支持。
支持6種事件(copy、paste、cut、beforeCopy、beforePaste、beforeCut)事件。在IE中剪切板數據利用window.clipboardData訪問,在Firefox和Safari中用event.clipboardData訪問。測試
獲取和設置剪切板數據code
var EventUtil = { getClipboardData: function(e){ var clipboardData = window.clipboardData || e.clipboardData; return clipboardData.getData("text"); }, setClipboardData: function(e, value){ console.log(e.clipboardData); if(e.clipboardData){ return e.clipboardData.setData("text/plain", value); }else if(window.clipboardData){ return window.clipboardData.setData("text", value); } } }
注意
一、在IE下測試成功,可是在chrome下利用setData不成功!有時間用http://wangningmei.is-programmer.com/posts/36438.html實踐一下;
二、getData方法只能在paste事件中才有效orm