jQuery Keyboard Events

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().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ụ

$('#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õ.

Bài viết này được đăng tại [free tuts .net]

.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ụ

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

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ụ

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ả.

Last updated