10
votes

JQuery Copier le contenu d'une zone de texte dans un champ tout en tapant

J'essaie de copier le contenu d'une zone de texte en DIV simultanément pendant que l'utilisateur tape. Voici Le code sur jsfiddle L'erreur qui est confrontée est, la longueur de la valeur copiée à l'intérieur de la div est toujours inférieure à celle de la zone de texte . quelle erreur suis-je dans le script?


0 commentaires

6 Réponses :


6
votes

Le keypress code> événement se produit avant que le texte de l'élément code> est mis à jour. Vous pouvez retarder l'opération de la copie pour contourner cela. Même un retard de 0 millisecond suffira à ce que l'opération de copie se produise après la mise à jour de l'élément:

$("#boxx").keypress(function() {
    var $this = $(this);
    window.setTimeout(function() {
       $("div").text($this.val());
    }, 0);
});


1 commentaires

Une autre bonne raison pour utiliser votre méthode est-elle des poignées coupées et coller beaucoup mieux, alors que le retard est très perceptible pour ces instances.



24
votes

Utiliser Keyup à la place. xxx

keypress se produit lorsque la touche est enfoncée et que vous souhaitez que le texte soit transféré lorsque la clé est relâchée.


2 commentaires

Remarque @ Rahat Répondre Si vous vous souciez de copier des changements de texte collé également.


La fonction Keyup fonctionne lui-même pour la copie des changements de texte collé.



12
votes

Le keyup strong> strong> et KeyPress fort> Evénements fonctionne pour l'entrée du clavier, mais si on utilise la souris sur le bouton droit de la souris et coller quelque chose dans la zone de texte, le changement de valeur ne sera pas être ramassé. Vous pouvez utiliser lid code> avec l'événement INPUT FORT> pour enregistrer les deux événements forts> et coller comme ceci:

$("#textbox1").bind('input', function () {
   var stt = $(this).val();
   $("#textbox2").val(stt);
});


0 commentaires

-3
votes
$("#boxx").keyup(function() {
    var $this= $(this);
    window.setTimeout(function() {
       $("div").text($this.val());
    }, 0);
});
this work proper.Copy also works f9enter code here

0 commentaires

0
votes
$("#title").keypress(function() {
                var $this = $(this);
                window.setTimeout(function() {

                   $("#slug-url").val($this.val().toLowerCase().replace(/ /g, '-'));
                }, 0);
            });
using @Frédéric Hamidi' method to generate seo friendly url after replacing spaces with '-' and changing text to smallcase. 

0 commentaires

0
votes

Utilisez Keyup et modifier les deux.

$("#boxx").on('keypress change', function(event) {
       var data=$(this).val();
       $("div").text(data);
});


0 commentaires