2012-11-05 20 views
5

Myślałem, że to był prosty, ale nie mogłem znaleźć niczego tam, z wyjątkiem one post here na STO.Pokaż tekst podczas pisania

Problem polega na tym, że kod nie działa. Stworzyłem fiddle, abyś mógł go zobaczyć sam.

Oto kod z skrzypce:

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

Jednak mój HTML jest nieco inna niż np:

<textarea name="comment-box" id="comment-box" class="required"></textarea> 
... 
<p id="comment-preview"></p> 

Wszystko czego potrzebujesz pomocy to sposób na wyświetlanie co jest wpisano na textarea w kontenerze "comment-preview".

Każda pomoc przy prowadzeniu mnie na tym jest bardzo doceniana.

Odpowiedz

15

Zmień this.val() do $(this).val()

DEMO:http://jsfiddle.net/FjNzS/1/

.val jest funkcją jQuery i można uzyskać z obiektu jQuery. Wewnątrz handlera, this jest obiektem DOM i dlatego należy go opakować za pomocą $(), aby stał się obiektem jQuery.

+0

Oh! W tym przykładzie wystąpił błąd literowy. Wyjaśnienie było dokładne plus przykład pracy, wielkie dzięki. –

5

Można użyć opcji $(this).val() lub this.value, ale this.val() jest niepoprawna.

+0

Dzięki za informacje o elklanerach. Dałem ci uprowadzenie. –

1
$("#comment-box").keyup(function() { 
    $("#comment-preview").text($(this).val()); 
}); 
+0

'.text()' dostanie tylko początkową wartość. Powinieneś użyć '.val' lub' this.value'. http://stackoverflow.com/questions/3964646/textarea-elem-val-vs-elem-text –

+0

Masz rację. Edytowane. –

+0

Tak, właśnie to używam teraz. Dałem ci uprowadzenie. Dzięki. –

2

Możesz także spróbować tego kodu z .on():

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

exemple http://jsfiddle.net/FjNzS/2/

+0

Dzięki za alternatywny kod. Dałem ci uprowadzenie. –

+0

Bardzo dziękuję!))) – RDK

Powiązane problemy