web-dev-qa-db-fra.com

Désactiver la nouvelle ligne dans la zone de texte lorsque vous entrez sur ENTRÉE

J'appelle une fonction chaque fois que quelqu'un appuie sur enter dans le textarea. Maintenant, je veux désactiver new line ou break quand enter est pressé.

Donc new line devrait fonctionner quand shift+enter est pressé. Dans ce cas, la fonction ne devrait pas être appelée.

Voici la démo de jsfiddle: http://jsfiddle.net/bxAe2/14/

17
Hassan Sardar

essaye ça

$("textarea").keydown(function(e){
// Enter was pressed without shift key
if (e.keyCode == 13 && !e.shiftKey)
{
    // prevent default behavior
    e.preventDefault();
}
});

mettre à jour votre violon à

$(".Post_Description_Text").keydown(function(e){
if (e.keyCode == 13 && !e.shiftKey)
{
  // prevent default behavior
  e.preventDefault();
  //alert("ok");
  return false;
  }
});
32
Scary Wombat

Pour Angular Utilisateurs

Bien qu'il existe des solutions de travail existantes, si quelqu'un rencontre cette question à l'aide de Angular , vous pouvez désactiver les nouvelles lignes avec les éléments suivants:

Ajouter <textarea ng-trim="false" ng-model='your.model' ...

Dans votre contrôleur, ajoutez:

$scope.$watch('your.model', function(newvalue, oldvalue) {
    if (newvalue && newvalue.indexOf('\n') > -1) {
       $scope.your.model = oldvalue;
    }
});
0
Matt Goodrich
    $(".Post_Description_Text").keypress(function(event) {

      if (event.which == 13) {        

        alert("Function is Called on Enter");

          event.preventDefault(); //Add this line to your code

       }

   });
0
Nirav Thakar