JavaScript高级程序设计54.pdf
過濾輸入
對于一些瀏覽器,可以使用正則表達式里的text()測試用戶按下的按鍵,Firefox和safari(3.1版本之前)會對向上向下、退格鍵和刪除鍵觸發keypress事件,在Firefox中,所有非字符鍵觸發的keypress事件對應的字符編碼為0,而在Safari3之前的版本,對應的字符編碼全部為8,最后確保用戶沒有按下Ctrl鍵(不屏蔽ctrl+c、ctrl+v)
EventUtil.addHandler(textbox,"keypress",function(event){
event=EventUtil.getEvent(event);
var target=EventUtil.getTarget(event);
var charCode=EventUtil.getCharCode(event);
if(!/d/.test(string.fromCharCode(charCode))&&charCode>9&&!event.ctrlKey){
EventUtil.preventDefault(event);
}
});
操作剪貼板(Opera不支持通過Javascript訪問剪貼板)
HTML5把剪貼板事件納入了規范,6個剪貼板事件
beforecopy:復制操作前觸發
copy:復制操作時觸發
beforecut:剪切操作前觸發
cut:剪切操作時觸發
beforepaste:粘貼操作前觸發
paste:粘貼操作時觸發
由于沒有針對剪貼板操作的標準,事件相關對象因瀏覽器而異,Safari、Chrome和Firefox中,beforecopy、beforecut和beforepaste在顯示針對文本框的上下文菜單情況下觸發,IE則是在copy、cut和paste操作前觸發;copy、cut和paste所有瀏覽器都會觸發他們
要訪問剪貼板中的數據,可以使用clipboardData對象:
在IE中,這個對象是window對象的屬性,隨時可以訪問
在Firefox4+、Safari和Chrome中,這個對象是相應event對象的屬性,只有在處理剪貼板事件期間clipboardData對象才有效,防止對剪貼板的未授權訪問
clipboardData對象有3個方法getData()、setData()和clearData()
getData()從剪貼板取得數據,接收一個數據格式的參數(IE中是text或URL,其它瀏覽器是MIME類型)
setData()第一個參數是數據類型(同上),第二個參數是要放在剪貼板的文本,成功操作返回true否則false
var EventUtil={
//省略的代碼
getClipboardText:function(event){
varclipboardData=(event.clipboardData||window.clipboardData);
returnclipboardData.getData("text");
},
setclipboardText:function(event,value){
if(event.clipboardData){
returnevent.clipboardData.setData("text/plain",value);
}else if(window.clipboardData){
returnwindow.clipboardData.setData("text",value);
}
},
//省略的代碼
};
HTML5約束驗證API
HTML5增加驗證規范,不需要JavaScript可以完成基本驗證
必填字段
required屬性
<input type="text" name="username" required>,適用于<input>、<textarea>和<select>字段(Opera11及之前版本不支持<select>的required屬性)
檢查瀏覽器是否支持required屬性
var isRequiredSupported="required" in document.createElement("input");
其他輸入類型
增加了type類型“email”和“url”(在不支持的瀏覽器中會自動更改為“text”)
數值范圍
除了“email”和“url”,HTML還定義了幾種基于數字的值:“number”、“range”、“datetime”、“datetime-local”、“date”、“month”、“week”和“time”,瀏覽器對這些支持并不好,對于所有的輸入數值類型的元素,可以指定min屬性(最小可能值)、max屬性(最大可能值)和step屬性(步長)
<--!輸入0到100并且是5的倍數-->
<input type="number" min="0" max="100" step="5" name="count">
stepUp()和stepDown()接收一個參數,在當前數值的基礎上加上或減去參數,默認為1
input.stepUp(); //加1
input.stepDown(10); //減10
總結
以上是生活随笔為你收集整理的JavaScript高级程序设计54.pdf的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: Settimer及回调函数的用法
 - 下一篇: java 基础,查看jar包源码,JD-