2010-03-10 5 views
7

Я использую jQuery datepicker в текстовом поле ввода, и я не хочу, чтобы пользователь менял какой-либо текст в текстовом поле ввода с помощью клавиатуры.Как не разрешать ввод текста в поле ввода текста с помощью jQuery?

Вот мой код:

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

Как не позволить клавиатуры ввода в поле ввода текста с помощью JQuery?

ответ

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

Отлично! Спасибо! – zeckdude

+1

Включает ли это покрытие вставки? Что делать, если я нажимаю в поле и набираю ctrl-V? – Cheeso

+1

Используйте keypress вместо keydown. keypress все равно позволит tab, ctrl-v и т. д. и т. д., а keydown блокирует все ключи. @Cheeso, я могу быть на 5 лет позже, отвечая на ваш вопрос, но ... я ответил на это! –

0

Вы могли:

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

Нет, это сделает поле также отключенным, и я стараюсь избегать этого. Я просто не хочу, чтобы они могли печатать. – zeckdude

+0

А другая проблема с атрибутом отключена, эти поля не будут переданы на сервер –

6

Вы можете просто сделать поле только для чтения с:

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

Если вы используете JQuery 1.6+, вы должны использовать метод prop() вместо этого:

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

Или использовать jQuery и использовать обычный JavaScript:

document.getElementById('rush_needed_by_english').readOnly = true;