Могу ли я запретить ввод текстового поля HTML, даже если мое поле НЕ отключено или доступно только для чтения? У меня есть это требование.
Может быть, я могу заблокировать все входы через JS или jQuery?
Могу ли я запретить ввод текстового поля HTML, даже если мое поле НЕ отключено или доступно только для чтения? У меня есть это требование.
Может быть, я могу заблокировать все входы через JS или jQuery?
Вы можете использовать jQuery для этого. Вы можете сделать это, как показано ниже.
$('input').keypress(function(e) {
e.preventDefault();
});
ИЛИ
вы можете просто вернуть false вместо использования preventDefault()
. Смотрите скрипт ниже
$('input').keypress(function(e) {
return false
});
См. скрипту.
ИЛИ
Сильно упрощенная версия без Javascript будет такой, как показано ниже. Просто измените свой HTML, как показано ниже
<input type="text" onkeypress="return false;"/>
См. скрипту.
Если вы хотите сделать поле полным неразрешимым.
$('input').focus(function(e) {
$(this).blur();
});
Пример: https://jsfiddle.net/DinoMyte/up4j39qr/15/
Если вы ищете ввод только для чтения, простой способ — добавить «только для чтения» к входному HTML. Например,
<input type="number" readonly>
При этом он не мешает отправке формы или другим слушателям событий. Ввод с параметром «только для чтения» по-прежнему будет отправлен, но не с параметром «отключен».
Для справки: https://www.w3schools.com/TAGS/att_input_readonly.asp
Вы можете вернуть false в событии input
или использовать .val('')
для сброса поля, когда каждый раз пользователь пытается что-то написать:
$('input').input(function(e) {
$(this).val('');
});
Надеюсь это поможет.
$('input').on('input', function(e) {
$(this).val('');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' />
Принятый ответ отлично работает для меня, но я также хотел включить клавиши Shift, Esc и удалить. В этом случае используйте keydown
вместо keypress
:
$('input').keydown(function(e) {
e.preventDefault();
});
Документация: https://api.jquery.com/keydown/