Tôi đang cố lấy văn bản trong một hộp văn bản khi người dùng nhập vào đó ( jsfiddle sân chơi ):
function edValueKeyPress() {
var edValue = document.getElementById("edValue");
var s = edValue.value;
var lblValue = document.getElementById("lblValue");
lblValue.innerText = "The text box contains: " + s;
//var s = $("#edValue").val();
//$("#lblValue").text(s);
}
<input id="edValue" type="text" onKeyPress="edValueKeyPress()"><br>
<span id="lblValue">The text box contains: </span>
Mã chạy mà không có lỗi, ngoại trừ giá trị của input text
hộp, trong suốt onKeyPress
luôn là giá trị trước khi thay đổi:
Câu hỏi : Làm cách nào để lấy nội dung của hộp văn bản trong khi
onKeyPress
?
Bonus Chatter
Có ba sự kiện liên quan đến "người dùng đang nhập" trong HTML DOM:
onKeyDown
onKeyPress
onKeyUp
Trong Windows , thứ tự của WM_Key
thông báo trở nên quan trọng khi người dùng nhấn giữ một phím và phím đó bắt đầu lặp lại:
WM_KEYDOWN('a')
- người dùng đã đẩy xuống A chìa khóaWM_CHAR('a')
- mộta
ký tự đã được nhận từ người dùngWM_CHAR('a')
- mộta
ký tự đã được nhận từ người dùngWM_CHAR('a')
- mộta
ký tự đã được nhận từ người dùngWM_CHAR('a')
- mộta
ký tự đã được nhận từ người dùngWM_CHAR('a')
- mộta
ký tự đã được nhận từ người dùngWM_KEYUP('a')
- người dùng đã phát hành A khóa
Sẽ dẫn đến năm ký tự xuất hiện trong một điều khiển văn bản: aaaaa
Điểm quan trọng là bạn phản hồi WM_CHAR
tin nhắn, tin nhắn lặp lại. Nếu không, bạn sẽ bỏ lỡ các sự kiện khi nhấn một phím.
Trong HTML, mọi thứ hơi khác một chút:
onKeyDown
onKeyPress
onKeyDown
onKeyPress
onKeyDown
onKeyPress
onKeyDown
onKeyPress
onKeyDown
onKeyPress
onKeyUp
Html cung cấp KeyDown
và KeyPress
mọi lần lặp lại phím. VàKeyUp
sự kiện chỉ được nâng lên khi người dùng nhả khóa.
Đi xa
- Tôi có thể trả lời
onKeyDown
hoặconKeyPress
, nhưng cả hai vẫn được nâng lên trước khiinput.value
được cập nhật - Tôi không thể trả lời
onKeyUp
vì nó không xảy ra khi văn bản trong hộp văn bản thay đổi.
Câu hỏi: Làm cách nào để lấy văn bản của hộp văn bản trong khi onKeyPress
?