06/04/2021, 14:48

jQuery Keyboard Events - jQuery căn bản

Trong bài này mình sẽ tìm hiểu đến một số sự kiện liên quan đến bàn phím và ta gọi đó là keyboard events. Ứng với mỗi phím sẽ có ba sự kiện đó là .keydown(), .keypress() và .keyup(). Các sự kiện này thông thường sẽ áp dùng cho các thẻ của form như input, textarea, ... Chúng ta sẽ lần ...

Trong bài này mình sẽ tìm hiểu đến một số sự kiện liên quan đến bàn phím và ta gọi đó là keyboard events. Ứng với mỗi phím sẽ có ba sự kiện đó là .keydown().keypress() và .keyup(). Các sự kiện này thông thường sẽ áp dùng cho các thẻ của form như input, textarea, ... Chúng ta sẽ lần lượt tìm hiểu ba sự kiện này nhé.

.keydown()

Sự kiện xảy ra khi bạn nhấn phím xuống, áp dụng cho mọi phím có trên bàn phím (kể cả bàn phím ảo). Nhấn phím xuống ở đây có nghĩa là bạn nhấn xuống thì sẽ xảy ra sự kiện, còn khi thả phím ra thì lại là sự kiện khác.

Cú pháp
.keydown( handler )

Hoặc
.keydown( [eventData ], handler )

Trong đó:

  • handler là hàm sẽ thực hiện khi sự kiện xảy ra
  • eventData là dữ liệu được thêm vào của sự kiện

Ví dụ RUN
$('#age').keydown(function(){
    $('#result').html("Keydown: dữ liệu nhận được là " + $(this).val());
});

Vì là sự kiện nhấn phím xuống nên giá trị nó lấy được sẽ khuyết đi giá trị của phím đang gõ.

.keypress()

Tương tự như keydown nhưng bị giới hạn bởi nó không hoạt động trên tất cả các phím, mà nó chỉ có tác dụng với những phím có giá trị như a,b,c .... còn những phím như shift, ctrl thì không có.

Cú pháp
.keypress( handler )

Hoặc
.keypress( [eventData ], handler )

Trong đó:

  • handler là hàm sẽ thực hiện khi sự kiện xảy ra
  • eventData là dữ liệu được thêm vào của sự kiện

Ví dụ RUN
var time = 0;
$('#age').keypress(function(){
    time++;
    $('#result').html("Keypress: lần thứ " + time + ". Giá trị nhận được là " + $(this).val());
});

Vì là sự kiện nhấn phím xuống nên giá trị nó lấy được sẽ khuyết đi giá trị của phím đang gõ.

.keyup()

Ngược hoàn toàn với keydown và keypress, keyup là sự kiện khi bạn nhả phím thay vì là nhấn phím xuống như hai sự kiện trên.

Cú pháp
.keyup( handler )

Hoặc
.keyup( [eventData ], handler )

Trong đó:

  • handler là hàm sẽ thực hiện khi sự kiện xảy ra
  • eventData là dữ liệu được thêm vào của sự kiện

Ví dụ RUN
var time = 0;
$('#age').keyup(function(){
    time++;
    $('#result').html("Keyup lần thứ " + time + ". Giá trị nhận được là " + $(this).val());
});

Vì là sự kiện nhả phím ra nên giá trị nó lấy được sẽ chứa toàn bộ dữ liệu, kể cả phím đang nhả.

Lời kết

Qua bài này mình đã giới thiệu xong cú pháp và cách sử dụng của ba sự kiện thuộc nhóm Keyboard Event đó là keydown(), keyup()keypress(). Mỗi sự kiện sẽ có một chút khác nhau nên bạn cần phải hiểu rõ thì mới áp dụng mới chính xác.

0