2012-11-05 50 views
5

Tôi nghĩ rằng đây là một trong những đơn giản nhưng tôi đã không thể tìm thấy bất cứ điều gì trên mạng, ngoại trừ one post here trên STO.Hiển thị văn bản khi nhập

Sự cố là mã không hoạt động. Tôi đã tạo một fiddle để bạn có thể tự mình xem.

Đây là mã từ fiddle:

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

Tuy nhiên, HTML của tôi là một chút khác biệt so với các ví dụ:

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

Tất cả tôi cần giúp đỡ là một cách để hiển thị những gì đang là được nhập vào số textarea trên vùng chứa "comment-preview".

Bất kỳ trợ giúp nào hướng dẫn tôi về vấn đề này đều được đánh giá cao.

Trả lời

15

Thay đổi this.val() để $(this).val()

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

.val là một hàm jQuery và có thể được truy cập từ đối tượng jQuery. Bên trong trình xử lý, this là đối tượng DOM và vì vậy bạn cần phải bọc nó với $() để biến nó trở thành đối tượng jQuery.

+0

Oh! Có một lỗi đánh máy trong ví dụ. Giải thích là triệt để cộng với ví dụ làm việc, cảm ơn rất nhiều cho điều đó. –

5

Bạn có thể sử dụng $(this).val() hoặc this.value, nhưng this.val() không chính xác.

+0

Cảm ơn các elclanrs thông tin. Đã cho bạn một upvote. –

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

'.text()' sẽ chỉ cho bạn giá trị ban đầu .. bạn nên sử dụng '.val' hoặc' this.value'. http://stackoverflow.com/questions/3964646/textarea-elem-val-vs-elem-text –

+0

Bạn nói đúng. Đã chỉnh sửa. –

+0

Vâng, đây chính là cách tôi đang sử dụng nó ngay bây giờ. Đã cho bạn một upvote. Cảm ơn. –

2

Bạn cũng có thể thử mã này với .on():

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

dụ http://jsfiddle.net/FjNzS/2/

+0

Cảm ơn mã thay thế. Đã cho bạn một upvote. –

+0

Rất cảm ơn bạn!))) – RDK

Các vấn đề liên quan