我们经常在表单的文本框中做一些验证处理,大家一般都是是限制那些具体要求的输入,而没有考虑到个别用户出于种种原因将文字粘贴到表单的文本域中,这样还是避免不了那些特殊的输入。
onbeforepaste顾名思义:在用户执行粘贴工作之前,进行的js操作。下面请看例子:
<input onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4e00-\u9fa5]/g,''))" >
意思就是:在用户将要粘贴的内容粘入文本框时,clipboardData.getData先读出要粘贴的内容,删除不是汉字的字符,只保留汉字,clipboardData.setData将处理好的字符复制到剪切板,显示在文本框中。
<input onKeyUp="value=value.replace(/[^\d]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" />
这个的话就是第一个的升级版,多了一个onKeyUp属性,这样写既考虑了手动输入的,也考虑了粘贴,完美!!!(第二个是只允许输入数字)
附加:js剪切板应用clipboardData(window的子对象)对象:提供了对剪贴板的访问。
三个方法
1.ClearData(sDataFormat) 删除剪贴板中指定格式的数据。
2.GetData(sDataFormat) 从剪贴板获取指定格式的数据。
3.SetData(sDataFormat, sData) 给剪贴板赋予指定格式的数据,返回 true 表示操作成功。