2012-06-25 20 views
7

Tôi đang cố đặt trọng tâm vào hộp văn bản ẩn. Tôi muốn rằng khi cơ thể hoặc div chứa hộp văn bản tải tiêu điểm nên được trên hộp văn bản cụ thể để bất kỳ đầu vào từ bảng chính hoặc bất kỳ thiết bị khác được bắt bởi yếu tố này. Tôi đã thử mã sau đây không có hiệu lực:cố gắng đặt trọng tâm vào hộp văn bản bị ẩn

<body> 
    <input type="text" id="exp" maxlength="16"></input> 
    <input type="text" id="exp2" maxlength="16"></input> 
    <script> 
     $("#exp").hide(); 
     $("#exp").focus(); 
     $("#exp2").keypress(function(){ 
      alert($("#exp").val()); 
     }); 
    </script> 
</body> 

đưa ra bất kỳ đề xuất nào. giải pháp jquery sẽ được ưu tiên.

+1

Thành phần ẩn không thể lấy tiêu điểm, theo thiết kế. Chính xác những gì bạn mong đợi sẽ xảy ra? Bạn có thể đặt tiêu điểm khi nó vẫn hiển thị rồi ẩn nó. –

+1

Thành phần ẩn hiển thị: không có; vì vậy làm thế nào họ có thể được tập trung .by Barbosa –

+0

Tôi không thể tưởng tượng tại sao bạn sẽ muốn làm điều này. Thẻ đầu vào cộng thêm là thẻ tự đóng.

Trả lời

12

Bạn không thể đặt trọng tâm vào hộp văn bản được ẩn thông qua phương thức hide. Thay vào đó, bạn cần phải di chuyển nó ra khỏi màn hình.

<body> 
<!-- it's better to close inputs this way for the sake of older browsers --> 
<input type="text" id="exp" maxlength="16" /> 
<input type="text" id="exp2" maxlength="16" /> 
<script> 
// Move the text box off screen 
$("#exp").css({ 
    position: 'absolute', 
    top: '-100px' 
}); 
$("#exp").focus(); 
$("#exp2").keypress(function(){ 
alert($("#exp").val()); 
}); 
</script> 
</body> 
+0

bằng cách thực hiện điều này #exp sẽ không bao giờ có thể quay lại vị trí trước đó của nó –

+0

Thông thường bạn không muốn hộp văn bản ẩn đang được sử dụng để nắm bắt các phím quay lại xem. Nhưng bạn có thể đưa nó trở lại vị trí trước đó của nó: '$ ('# exp') .ss ('position', 'static'); ' –

+0

Đáp ứng yêu cầu của tôi ... mặc dù nó không phải là thứ tôi đang tìm kiếm. ..it sems một chút của giải pháp hộp ....:) ... cảm ơn anyways ... –

1
visibility:hidden; 
position: absolute; 

trình trong Chrome 53, và dường như sạch hơn là cố gắng chuyển các phần tử offscreen như trong câu trả lời Nathan Wall.

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