2010-03-10 39 views
7

Tôi đang sử dụng jQuery datepicker trên trường nhập văn bản và tôi không muốn cho phép người dùng thay đổi bất kỳ văn bản nào trong hộp nhập văn bản bằng bàn phím.Làm cách nào để không cho phép nhập vào trường nhập văn bản bằng jQuery?

Dưới đây là mã của tôi:

$('#rush_needed_by_english').keydown(function() { 
    //code to not allow any changes to be made to input field 
}); 

Làm thế nào để không cho phép gõ bàn phím trong một lĩnh vực đầu vào văn bản sử dụng jQuery?

Trả lời

8
$('#rush_needed_by_english').keydown(function() { 
    //code to not allow any changes to be made to input field 
    return false; 
}); 
+0

Hoàn hảo! Cảm ơn bạn! – zeckdude

+1

Sự kiện dán này có bao gồm không? Điều gì sẽ xảy ra nếu tôi nhấp vào hộp và nhập ctrl-V? – Cheeso

+1

Sử dụng nhấn phím thay vì nhấn phím. nhấn phím sẽ vẫn cho phép tab, ctrl-v, v.v. trong khi phím tắt chặn tất cả các phím. @ Cheeso, tôi có thể trễ 5 năm để trả lời câu hỏi của bạn, nhưng .... tôi đã trả lời câu hỏi đó! –

0

Bạn có thể:

$('#rush_needed_by_english').attr('disabled', 'disabled'); 
+0

Không, điều đó sẽ làm cho trường nhìn cũng bị tắt và tôi đang cố tránh điều đó. Tôi chỉ không muốn họ có thể gõ. – zeckdude

+0

Một vấn đề khác với thuộc tính bị vô hiệu hóa các trường này sẽ không được chuyển đến máy chủ –

6

Bạn chỉ có thể làm cho lĩnh vực này chỉ đọc với:

$('#rush_needed_by_english').attr('readonly', 'readonly'); 

Nếu bạn đang sử dụng jQuery 1.6 +, bạn nên sử dụng phương pháp prop() thay vào đó:

$('#rush_needed_by_english').prop('readOnly', true); 
// careful, the property name string 'readOnly' is case sensitive! 

Hoặc mương jQuery và sử dụng JavaScript đơn giản:

document.getElementById('rush_needed_by_english').readOnly = true; 
Các vấn đề liên quan