2010-05-11 37 views
5

Tôi có một số TextBox trên Panel và tôi muốn được thông báo khi giá trị của 'TextBox' thay đổi.Hộp văn bản GWT - Thông báo về thay đổi giá trị trong khi chỉnh sửa

Tôi đã cố gắng xử lý sự kiện sau đây:

  • ChangeHandler
  • ValueChangeHandler
  • KeyPresshandler

Vấn đề của tôi là ValueChangeHandlerChangeHandler chỉ cháy khi tập trung lá các điều khiển. KeyPressHandler bắn đúng cách, nhưng trước khi chính bản thân số TextBox đã thấy sự kiện, có nghĩa là một cuộc gọi đến getText() từ trình xử lý sự kiện của tôi sẽ thấy giá trị cũ.

Có sự kiện nào hoạt động chính xác như KeyPressHandler nhưng được kích hoạt sau số TextBox đã xem sự kiện chưa?

EDIT: Hành vi này được nhìn thấy trong Chrome và IE8 trên Windows XP

+0

Hành vi tương tự được thấy trên Linux/Firefox 3.6.8. –

+0

Có liên quan [Trình xử lý thay đổi giá trị ngay lập tức trên Hộp văn bản GWT] (http://stackoverflow.com/questions/3184648/instant-value-change-handler-on-a-gwt-textbox) – Jla

Trả lời

7

Thử KeyUpHandler.

+0

Chết tiệt, đánh tôi với nó;) –

+0

Tôi có một "người bạn" đã tìm kiếm nó hàng giờ liền;) –

+2

Điều này sẽ không hoạt động nếu người dùng sao chép bột nhão. – Jla

1

Giải pháp rất mạnh mẽ (mặc dù không phải là rất thanh lịch) bắt tất cả thay đổi bao gồm sao chép/dán thông qua chuột hoặc đề xuất văn bản được chèn qua bàn phím ảo (ví dụ như bàn phím ios 8) để bắt đầu hẹn giờ tập trung và kiểm tra giá trị của hộp văn bản trong một khoảng thời gian thích hợp. Bộ hẹn giờ bị dừng khi làm mờ (đừng quên thực hiện kiểm tra cuối cùng về làm mờ).

Tôi không biết về bất kỳ giải pháp "dựa trên trình xử lý" nào để nắm bắt tất cả các thay đổi của hộp văn bản.

Các vấn đề liên quan