《Javascript高级程序设计》14章-----过滤输入
1、屏蔽字符(监听keypress事件)
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();
}
}注意:
1、因为Firefox和Safari(3.1版本之前)会对上下键、左右键、delete键和退格键触发keypress事件,在Firefox中非字符的charCode的值为0,在Safari(3.1版本之前)charCode的值为8。为了不要屏蔽那些非字符键,所以有charCode>9的条件;
2、为了不屏蔽用户输入ctrl+C或者Ctrl+V等组合键,判断用户没有按下Ctrl键,所以有!e.ctrlKey的条件。
2、操作剪切板
IE、Firefox、Safari都支持剪切板,但Opera不支持。
支持6种事件(copy、paste、cut、beforeCopy、beforePaste、beforeCut)事件。在IE中剪切板数据利用window.clipboardData访问,在Firefox和Safari中用event.clipboardData访问。
获取和设置剪切板数据
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);
}
}
}注意
1、在IE下测试成功,但是在chrome下利用setData不成功!有时间用http://wangningmei.is-programmer.com/posts/36438.html实践一下;
2、getData方法只能在paste事件中才有效
相关推荐
liuweiq 2020-07-08
e度空间 2020-06-11
ZHANGRENXIANG00 2020-06-09
88961137 2020-06-01
marisafari 2020-05-29
jiaguoquan00 2020-05-27
fanhuasijin 2020-04-17
juanjuanwang 2020-03-23
81224450 2020-01-24
xiangxiaojun 2020-01-16
程序员俱乐部 2020-01-11
combine 2015-06-23
baynkbtg 2019-12-23
Safari浏览器 2019-12-14
88961137 2019-12-09
NeptuneSafari 2013-07-17