Отключить ввод ключа в определенных текстовых окнах
Я искал способ сделать это, получил несколько скриптов, но никто из них не работает для меня.
Когда я нажимаю enter в своих текстовых окнах, он ничего не должен делать.
Я пробовал несколько скриптов JavaScript и jQuery, но для меня ничего не работает.
$(document).ready(function() {
$('#comment').keypress(function(event) {
if (event.keyCode == 13) {
event.preventDefault();
}
});
$('#comment').keyup(function() {
var txt = $('#comment').val();
$('#comment').val(txt.replace(/[\n\r]+/g, " "));
});
});
Ответы
Ответ 1
Это работает для меня.
$('textarea').keypress(function(event) {
if (event.keyCode == 13) {
event.preventDefault();
}
});
jsFiddle.
Ваша вторая часть выглядит так, что она предназначена для захвата людей, вставляемых в несколько строк. В этом случае вы должны привязать его к keyup paste
.
Ответ 2
Он запрещает пользователю нажимать Ввод в текстовом поле, и здесь я возвращаю false, которые препятствуют отправке формы.
$(document).ready(function()
{
// Stop user to press enter in textbox
$("input:text").keypress(function(event) {
if (event.keyCode == 13) {
event.preventDefault();
return false;
}
});
});
Ответ 3
Если вы хотите запретить клавишу Enter для определенного текстового поля, используйте inline js.
<input type="text" onkeydown="return (event.keyCode!=13);"/>
Ответ 4
Работает для меня:
$('#comment').keypress(function(event) {
if (event.which == 13) {
event.preventDefault();
}
});
http://jsfiddle.net/esEUm/
UPDATE
Если вы пытаетесь предотвратить отправку родительской формы, а не разрыв строки (что имеет смысл, если вы используете textarea
, который вы, по-видимому, не делаете?), вы можете захотеть для проверки этого вопроса: Отключить ключ ввода в форме, заполненной jQuery
Ответ 5
Я нашел это решение комбайна в
http://www.askmkhize.me/how-can-i-disable-the-enter-key-on-my-textarea.html
$('textarea').keypress(function(event) {
if ((event.keyCode || event.which) == 13) {
event.preventDefault();
return false;
}
});
$('textarea').keyup(function() {
var keyed = $(this).val().replace(/\n/g, '<br/>');
$(this).html(keyed);
});
Ответ 6
Использовать глобальный селектор $('input')... если вы используете несколько текстовых полей на странице, ID ('#comment') вызовет проблемы. И при использовании динамического содержимого свяжите его с помощью .live, например.
$('input:not(textarea)').live('keypress',function(e) {
if (e.which == 13) return false;
if (e.which == 13) e.preventDefault();
});
(Отключить ввод для текстовых полей, а листья разрешены для текстовых областей)
Ответ 7
<script type="text/javascript">
function stopRKey(evt) {
var evt = (evt) ? evt : ((event) ? event : null);
var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
if ((evt.keyCode == 13) && (node.type=="text")) {return false;}
}
document.onkeypress = stopRKey;
</script>
http://webcheatsheet.com/javascript/disable_enter_key.php
Ответ 8
Если вы хотите отключить все текстовые поля поиска. Дайте всем им класс и используйте следующий класс, например "search_box".
//prevent submission of forms when pressing Enter key in a text input
$(document).on('keypress', '.inner_search_box', function (e) {
if (e.which == 13) e.preventDefault();
});
ура!:)
Ответ 9
Я не понимаю, почему все здесь предлагают использовать jquery.
Для него существует очень простой метод
для конкретного поля элемента ввода. Вы можете использовать его атрибут onKeyDown и использовать в нем метод e.preventDefault(). Вот так:
<input type="text" onKeyDown={(e) => e.preventDefault()}/>
Примечание. Это метод React JSX, использующий этот атрибут, вы можете использовать основной способ HTML.