Làm cách nào để xóa tiêu điểm khỏi trường đầu vào trong jQuery?


136

Tôi đang đặt tiêu điểm vào một trường đầu vào nhất định khi tải trang bằng dòng sau:

$('#myInputID').focus();

Có cách nào để tôi có thể hoàn tác hoặc xóa tiêu điểm này khi di chuột qua một yếu tố nào đó không? (Không cần phải đặt lại tiêu điểm sau khi rời khỏi phần tử này.)

Tôi không thể tìm thấy một hàm trái ngược với ở trên trong jQuery hoặc nếu không thì sẽ hoạt động ở đây.

Câu trả lời:


227

Sử dụng .blur () .

Sự kiện mờ được gửi đến một phần tử khi nó mất tiêu điểm. Ban đầu, sự kiện này chỉ được áp dụng cho các yếu tố hình thức, chẳng hạn như <input>. Trong các trình duyệt gần đây, miền của sự kiện đã được mở rộng để bao gồm tất cả các loại phần tử. Một yếu tố có thể mất tiêu điểm thông qua các lệnh bàn phím, chẳng hạn như phím Tab hoặc bằng cách nhấp chuột ở nơi khác trên trang.

$("#myInputID").blur(); 

Ok, vì vậy tôi nghĩ rằng tôi đang làm điều gì đó sai ở đây hoặc tôi đã mô tả điều này sai cách. Phần tử tôi muốn sử dụng ở đây có thanh điều hướng lớp (nó là thanh điều hướng Bootstrap 3) vì vậy tôi đã thử các cách sau nhưng điều này không hoạt động: $ ('. Navbar'). On ('mouseover', function () {$ ( '#myInputID'). Blur ();});
dùng2571510

Vâng, tôi đã làm điều đó. Nếu điều này không hoạt động, tôi chỉ có thể tập trung vào thanh điều hướng thay thế?
dùng2571510

1
@ user2571510: hãy thử đưa ra cảnh báo bên trong sự kiện và xem liệu nó có bị sa thải hay không.
Milind Anantwar

Có, cảnh báo hiển thị nhưng nó không xóa tiêu điểm khỏi trường.
dùng2571510

1
@ user2571510: bạn có id trùng lặp trong trang không ?? thử sử dụng$("[id=myInputID]").blur();
Milind Anantwar



0

$(':text').attr("disabled", "disabled");đặt tất cả hộp văn bản sang chế độ bị tắt. Bạn có thể làm theo cách khác như đưa ra mỗi id hộp văn bản. Bằng cách làm trọng lượng mã này sẽ nhiều hơn và vấn đề hiệu suất sẽ có.

Vì vậy, tốt hơn có $(':text').attr("disabled", "disabled");cách tiếp cận.


0

Nếu bạn có readonlythuộc tính, mờ tự nó sẽ không hoạt động. Contraption dưới đây nên làm công việc.

$ ('# myInputID'). removeAttr ('readonly'). trigger ('Blur'). attr ('readonly', 'readonly');
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.