У меня есть форма с текстовой областью, и нажатие клавиши ввода отправляет мою форму. Как я могу заставить его добавить новый символ линии вместо формы submit.
Добавить новый символ строки в textarea вместо отправки формы
Ответ 1
$('textarea').keypress(function(event) {
if (event.which == 13) {
event.preventDefault();
var s = $(this).val();
$(this).val(s+"\n");
}
});
Ответ 2
Это должно помочь
$('#myProblematicForm textarea').keypress(function(event) {
if (event.which == 13) {
event.preventDefault();
this.value = this.value + "\n";
}
});
Для чего я использую Chrome в OS X и Enter вставляет \n
в текстовое поле для меня и не отправляет формы по умолчанию.
Ответ 3
вы можете попробовать этот код:
$(document).ready(function() {
$("textarea").keydown(function(event){
if(event.keyCode == 13) {
event.preventDefault();
return false;
}
});
});
Ответ 4
$(document).ready(function() {
$('textarea').keydown(function(event){
if (event.keyCode == 13) {
event.preventDefault();
var s = $(this).val();
$(this).val(s+"\n");
}
});
});
Ответ 5
Предыдущие ответы не обрабатывают разделение текущего значения текстового поля и просто добавляют новый символ строки. Следующее останавливает событие от пузырьков до формы и по-прежнему позволяет типичное поведение textarea на 'enter'.
$('textarea').keydown(function(event) {
if (event.keyCode === 13) {
event.stopPropagation();
}
});
Ответ 6
Это сработало для меня
$(document).keypress(function(e) {
if(e.which == 13) {
if(document.activeElement.tagName != "TEXTAREA") {
e.preventDefault();
};
}
})
Ответ 7
$(document).ready(function(){
$("#text").keypress(function(event) {
if (event.which == 13) {
var s = $(this).val();
$(this).val(s+"\n"); //\t for tab
}
});
});
Это можно сделать с помощью jquery-кода, который я привел выше. Необходимо заметить, что использование готовой функции необходимо, когда вы пишете выше script перед кодами поля ввода HTML и не обязательно, когда вы пишете его после кодов полей ввода. Если он не работает, попробуйте использовать \t на месте из \n он будет работать.