2010-11-13 4 views
1

J'ai ce script dans jsfiddle, que tout en tapant im il devrait afficher le texte en direct ci-dessous.Quel est le problème ce script jQuery aperçu en direct?

est un script simple, mais je cnt semble voir quel est le problème, merci :))

http://jsfiddle.net/XWsqz/


EDIT: Ajout de code de lien.

$(document).ready(function(){ 
    $('#someTextBox').keyup(function(){ 
     $('#target').html(this.val()); 
    }); 
}); 

HTML

<textarea id="someTextBox"></textarea> 
<div id="target"></div> 
+0

escapade - Je me suis occupé ici, mais s'il vous plaît placez votre code dans la question à l'avenir. Merci. : o) – user113716

+0

Personne n'a mentionné le défaut mineur dans votre liaison d'événement. Voyez ce qui se passe quand vous maintenez une lettre? Il finira par mettre à jour la cible lorsque vous laisserez partir la clé, mais avez-vous essayé de coller du texte avec la souris? Vous devez lier plus que l'événement keyup si vous voulez que cela fonctionne pour toutes les mises à jour de la zone de texte. –

Répondre

6

devrait être $(this).val() au lieu de this.val() parce this des points à l'élément DOM et non l'élément jquery qui a la fonction .val() définie:

$('#target').html($(this).val()); 
+0

acclamations, c'est un peu bizarre !! mais encore moins merci – getaway

+0

puis-je ajouter quelque chose d'addtional au html, en plus de l'id cible, par exemple sur moi, cela ne devrait être visible lorsque l'utilisateur tape – getaway

1

utilisation $(this).val() au lieu de this.val().

Le premier est un objet jQuery, le dernier, je pense, est simplement un noeud DOM.

Alors:

$(document).ready(function(){ 
     $('#someTextBox').keyup(function(){ 
      $('#target').html($(this).val()); 
     }); 
    }); 

JS Fiddle demo.

+0

Sérieusement? Pourquoi le down-vote? –

0

Vous devez faire $(this).val() au lieu de this.val()

-1

.val() est une fonction jQuery, il ne fonctionne que lorsque vous appelez un objet jQuery.

this 

n'est pas jQuery seul (dans notre exemple). Vous devez envelopper dans $(), comme suit:

$(this) 

Ainsi serait la bonne façon être comme ceci:

$("#target").html($(this).val()); 
+0

Dans le cas où quelqu'un se demande, cette réponse est valide. Le downvote était probablement un mouvement "stratégique". – Jake

7

Comme tout le monde suggère, $(this).val() fonctionnera. Cependant, cela n'a pas beaucoup de sens d'engager la surcharge de créer un objet enveloppé jQuery sur chaque touche unique. this.value est une meilleure option si vous n'avez pas besoin des méthodes étendues de jQuery sur cet élément:

$(document).ready(function(){ 
    $('#someTextBox').keyup(function(){ 
    $('#target').html(this.value); 
    }); 
}); 
+0

Êtes-vous certain que 'this.value' est compatible avec plusieurs navigateurs pour un'