2
votes

Empêcher la nouvelle ligne mais autoriser la saisie (soumission) dans textarea (jquery)

J'ai une zone de texte et je veux que les utilisateurs modifient ce qui existe déjà et appuient sur Entrée pour soumettre à l'aide d'un appel ajax, mais désactivent également le passage à une nouvelle ligne une fois que Entrée est enfoncée. merci

​​

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
$(document).keypress(function(e) {
  if (!$(".specialClass").is(":focus")) {
    e.preventDefault();
    if (e.which == 13) {
      console.log('You pressed enter!');
    }
  }
});


0 commentaires

3 Réponses :


7
votes

Vous utiliseriez quelque chose comme:

$('textarea').on('keyup keypress', function(e) {
  var keyCode = e.keyCode || e.which;
  if (keyCode === 13) { 
    e.preventDefault();

    // Ajax code here

    return false;
  }
});


0 commentaires

1
votes

J'espère que cela vous aidera.

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea class="specialClass">
  This is my text
  with some lines
  bye
</textarea>
.specialClass {
  width: 80%;
  height: 80px;
}
$(document).keypress('.specialClass', function(e) {
  if (e.which == 13) {
    e.preventDefault();
    console.log('You pressed enter!');
  }
});


0 commentaires

2
votes

Je veux que les utilisateurs modifient ce qui est déjà là et appuyez sur Entrée pour soumettre en utilisant un appel ajax, mais également le désactiver en allant sur une nouvelle ligne une fois que vous appuyez sur Entrée

En utilisant votre conception de codage, une légère refonte de votre code devrait faire l'affaire:

$(document).keypress(function(e) {
  if($(".specialClass").is(":focus")){
    if(e.which == 13) {
      e.preventDefault();
      let text_value = $(".specialClass").val()
      console.log('Sending Ajax with text',text_value);
    }
  }
});

0 commentaires