J'ai un formulaire avec une zone de texte et appuyez sur la touche Entrée pour envoyer mon formulaire. Comment puis-je faire pour ajouter un nouveau caractère de ligne au lieu d'un formulaire de soumission.
$('textarea').keypress(function(event) {
if (event.which == 13) {
event.stopPropagation();
}
});
Cela devrait aider
$('#myProblematicForm textarea').keypress(function(event) {
if (event.which == 13) {
event.preventDefault();
this.value = this.value + "\n";
}
});
Pour ce que ça vaut, j'utilise Chrome sur OS X et Enter insère un \n
dans une zone de texte pour moi et pas soumet les formulaires par défaut.
vous pouvez essayer ce code:
$(document).ready(function() {
$("textarea").keydown(function(event){
if(event.keyCode == 13) {
event.preventDefault();
return false;
}
});
});
$(document).ready(function() {
$('textarea').keydown(function(event){
if (event.keyCode == 13) {
event.preventDefault();
var s = $(this).val();
$(this).val(s+"\n");
}
});
});
Les réponses précédentes ne gèrent pas le fractionnement de la valeur actuelle de la zone de texte et ajoutent simplement un nouveau caractère de ligne. Ce qui suit empêche l'événement de remonter jusqu'au formulaire et permet toujours le comportement typique de la zone de texte sur 'entrée'.
$('textarea').keydown(function(event) {
if (event.keyCode === 13) {
event.stopPropagation();
}
});
Cela a fonctionné pour moi
$(document).keypress(function(e) {
if(e.which == 13) {
if(document.activeElement.tagName != "TEXTAREA") {
e.preventDefault();
};
}
})
$(document).ready(function(){
$("#text").keypress(function(event) {
if (event.which == 13) {
var s = $(this).val();
$(this).val(s+"\n"); //\t for tab
}
});
});
Cela peut être fait avec le code jQuery que j'ai donné ci-dessus. Notez que l’utilisation de la fonction ready est nécessaire lorsque vous écrivez le script ci-dessus avant les codes du champ de saisie HTML et non nécessaire lorsque vous l’écrivez après les codes de champ de saisie. ça va marcher.