Как запретить ввод текста в поле ввода с помощью jQuery?

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

Вот мой код:

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

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


person zeckdude    schedule 10.03.2010    source источник


Ответы (3)


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

$('#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;
person Cᴏʀʏ    schedule 10.03.2010

Ты мог бы:

$('#rush_needed_by_english').attr('disabled', 'disabled');
person MyGGaN    schedule 10.03.2010
comment
Нет, это также сделало бы поле отключенным, и я пытаюсь этого избежать. Я просто не хочу, чтобы они могли печатать. - person zeckdude; 10.03.2010
comment
Другая проблема с отключенным атрибутом: эти поля не будут переданы на сервер. - person Rama Vadakattu; 06.01.2012

person    schedule
comment
Охватывает ли это события вставки? Что, если я щелкну в поле и наберу ctrl-V? - person Cheeso; 10.03.2010
comment
Используйте нажатие клавиши вместо нажатия клавиши. нажатие клавиши по-прежнему разрешает вкладку, ctrl-v и т. д. и т. д., в то время как нажатие клавиши блокирует все клавиши. @Cheeso, может, я и опоздал с ответом на твой вопрос на 5 лет, но... я ответил! - person Ben Eggett; 06.04.2015