web-dev-qa-db-fra.com

Ajouter un nouveau caractère de ligne à textarea au lieu de soumettre le formulaire

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.

12
khizar
$('textarea').keypress(function(event) {
   if (event.which == 13) {
      event.stopPropagation();
   }
});​

JSFiddle Demo

27

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.

2
maček

vous pouvez essayer ce code:

$(document).ready(function() {
  $("textarea").keydown(function(event){
    if(event.keyCode == 13) {
      event.preventDefault();
      return false;
    }
  });
});
1
Karthik Chintala
$(document).ready(function() {
  $('textarea').keydown(function(event){
    if (event.keyCode == 13) {
      event.preventDefault();
      var s = $(this).val();
      $(this).val(s+"\n");
    }
  });
});
1
Rusty Fernandez

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();
  }
});
1
David Rice

Cela a fonctionné pour moi

$(document).keypress(function(e) {
if(e.which == 13) {
    if(document.activeElement.tagName != "TEXTAREA") {
        e.preventDefault();
    };
  }
})
1
Alina Malchanava
$(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.

1
Abhinav Chauhan