Điều này có lẽ rất đơn giản, nhưng ai đó có thể cho tôi biết làm thế nào để con trỏ nhấp nháy trên hộp văn bản khi tải trang không?
Điều này có lẽ rất đơn giản, nhưng ai đó có thể cho tôi biết làm thế nào để con trỏ nhấp nháy trên hộp văn bản khi tải trang không?
Câu trả lời:
Đặt tiêu điểm vào trường văn bản đầu tiên:
$("input:text:visible:first").focus();
Trường này cũng thực hiện trường văn bản đầu tiên, nhưng bạn có thể thay đổi [0] thành chỉ mục khác:
$('input[@type="text"]')[0].focus();
Hoặc, bạn có thể sử dụng ID:
$("#someTextBox").focus();
$('input[type="text"]').get(0).focus();
... làm việc cho tôi
Bạn có thể sử dụng HTML5autofocus
cho việc này. Bạn không cần jQuery hoặc JavaScript khác.
<input type="text" name="some_field" autofocus>
Lưu ý điều này sẽ không hoạt động trên IE9 và thấp hơn.
Chắc chắn rồi:
<head>
<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
$("#myTextBox").focus();
});
</script>
</head>
<body>
<input type="text" id="myTextBox">
</body>
Tại sao mọi người sử dụng jQuery cho một cái gì đó đơn giản như thế này.
<body OnLoad="document.myform.mytextfield.focus();">
Hãy suy nghĩ về giao diện người dùng của bạn trước khi bạn làm điều này. Tôi giả sử (mặc dù không có câu trả lời nào nói như vậy) rằng bạn sẽ làm điều này khi tải tài liệu bằng ready()
chức năng của jQuery . Nếu người dùng đã tập trung vào một yếu tố khác trước khi tài liệu được tải (điều này là hoàn toàn có thể) thì việc họ bị mất tập trung là vô cùng khó chịu.
Bạn có thể kiểm tra điều này bằng cách thêm onfocus
các thuộc tính trong từng <input>
thành phần của bạn để ghi lại xem người dùng đã tập trung vào trường biểu mẫu hay chưa và sau đó không lấy cắp tiêu điểm nếu chúng có:
var anyFieldReceivedFocus = false;
function fieldReceivedFocus() {
anyFieldReceivedFocus = true;
}
function focusFirstField() {
if (!anyFieldReceivedFocus) {
// Do jQuery focus stuff
}
}
<input type="text" onfocus="fieldReceivedFocus()" name="one">
<input type="text" onfocus="fieldReceivedFocus()" name="two">
HTML:
<input id="search" size="10" />
jQuery:
$("#search").focus();
autofocus
thuộc tính cho phần tử đầu vào?
Xin lỗi vì đã trả lời một câu hỏi cũ. Tôi tìm thấy điều này qua google.
Cũng đáng lưu ý rằng có thể sử dụng nhiều hơn một bộ chọn, do đó bạn có thể nhắm mục tiêu bất kỳ thành phần biểu mẫu nào, và không chỉ một loại cụ thể.
ví dụ.
$('#myform input,#myform textarea').first().focus();
Điều này sẽ tập trung đầu vào hoặc textarea đầu tiên mà nó tìm thấy, và tất nhiên bạn cũng có thể thêm các bộ chọn khác vào hỗn hợp. Hnady nếu bạn không thể chắc chắn về một loại phần tử cụ thể là đầu tiên, hoặc nếu bạn muốn một cái gì đó hơi chung chung / có thể tái sử dụng.
Đây là những gì tôi thích sử dụng:
<script type="text/javascript">
$(document).ready(function () {
$("#fieldID").focus();
});
</script>
autofocus
thuộc tính được cung cấp bởi HTML5
đặt sau khi đầu vào
<script type="text/javascript">document.formname.inputname.focus();</script>
Cách đơn giản và dễ dàng nhất để đạt được điều này
$('#button').on('click', function () {
$('.form-group input[type="text"]').attr('autofocus', 'true');
});
Một $('#myTextBox').focus()
mình dòng sẽ không đặt con trỏ vào hộp văn bản, thay vào đó sử dụng:
$('#myTextBox:text:visible:first').focus();