目的:檔案命名時,限制某些字元無法輸入!
限制字元: \ / | ? :
在此種情況下,使用 keypress 事件較為合適
keydown event 會判斷是鍵盤上哪個鍵被按下,
而 keypress event 則會判斷是哪個字元被輸入
舉例來說,輸入小寫字元 "a",
keypress 事件會回傳 97
keydown 事件回傳 65
輸入大寫字元 "A",
keypress 事件回傳 65
keydown 事件回傳 65
由上例可知, keypress 可以準確分辨大寫 "A" 與小寫 "a",
而 keydwon 則因為回傳皆為 65,無法辨識輸入字元為大寫 "A" 或是 小寫 "a"
但 keydown event 能夠偵測某些特殊按鍵,像是 Shift 或是 方向鍵
在本例中,因為希望限制 : 輸入,而 ; 則可以正常輸入
使用 keydown event,則 event.which 值皆為 186
使用 keypress event, ; reported as 59, : reported as 58
所以 keypress event 會較符合此次限制檔案命名需求!
2013年12月26日 星期四
2013年12月2日 星期一
【jQuery】Trigger keyup event
需求:刪除檔案可以點擊"刪除"圖示或是按下鍵盤上"DEL"按鍵
實作:因為兩個方式都是實作刪除檔案,所以可以先寫好其中一個 function,
另一個就直接觸發該 function 即可。
想法:先實作出使用"DEL"鍵刪除;點擊 Icon 則模擬鍵盤事件即可。
另外要注意的是,一般 html tag (ex:div) 需要加上 tabindex 屬性才可以觸發鍵盤事件
而 input tag 則不需要額外加上 tabindex 屬性
實作:因為兩個方式都是實作刪除檔案,所以可以先寫好其中一個 function,
另一個就直接觸發該 function 即可。
想法:先實作出使用"DEL"鍵刪除;點擊 Icon 則模擬鍵盤事件即可。
$('item').keyup(function(event) { if (event.which == 46) { // to do delete file } }); $('.icon').click({ var e = $.Event('keyup'); e.which = 46; // Delete $('item').trigger(e); });
另外要注意的是,一般 html tag (ex:div) 需要加上 tabindex 屬性才可以觸發鍵盤事件
而 input tag 則不需要額外加上 tabindex 屬性
訂閱:
文章 (Atom)