Tuesday, December 16, 2014

[jQuery] 輸入值轉大寫(或轉小寫)

如果需要在輸入欄位自動將使用者輸入的字轉成大寫,直覺上會這樣做


$(".upper").on("keyup", function(){
  this.value = this.value.toUpperCase();
});

實作後會發現這樣的寫法,使用者也無法使用方向鍵去控制游標,所以建議將 keyup 改成 change,如下:

$(".upper").on("change", function(){
  this.value = this.value.toUpperCase();
});

補充說明:
有研究了一下 keyup 改 keypress,雖然改善了方向鍵的問題,但是卻無法在字裡行間去插入新字元,所以放棄。
另外 keydown、keypress 等事件,是有差異的,細節可以參閱 歐萊禮 的 『JavaScript 大全』中的 第十七章 事件處理。

No comments:

Post a Comment