2011-08-18 14 views
13

OK Tôi có danh sách các thiết bị mà tôi có thể chọn để chỉnh sửa. Tôi có 3 tiểu bang để chỉnh sửa. Khi không có thiết bị nào được chọn, khi 1 thiết bị được chọn hoặc khi x thiết bị được chọn.jQuery - xóa văn bản nhập của người dùng khỏi textarea

Vấn đề tôi gặp phải là khi người dùng nhập một số văn bản trong vùng văn bản (chú thích) và hủy chỉnh sửa để chỉnh sửa thiết bị khác, văn bản đã nhập vào vùng văn bản sẽ không làm mất hiệu lực. Nó vẫn như vậy khi tôi nhận được hộp thoại mới cho chỉnh sửa mới, commentfield có văn bản từ commentField cũ (như thể nó không được xóa)

Tôi đã thử các mã sau để xóa văn bản (cả khi hủy nút được nhấn và khi tôi bắt đầu một hộp thoại mới), nhưng không hoạt động:

$("#commentField").text(" "); 
$("#commentField").value = ' '; 

có ai biết làm thế nào để loại bỏ văn bản do người dùng gõ từ một textarea sử dụng jQuery ??

Xin cảm ơn trước.

-Thor

+0

bản sao có thể có của [Đặt giá trị của vùng văn bản trong jquery] (http://stackoverflow.com/questions/415602/set-value-of-textarea-in-jquery) – jtbandes

Trả lời

51

Bạn đang tìm kiếm .val():

$("#commentField").val(''); 

Ví dụ:http://jsfiddle.net/andrewwhitaker/q6eLV/

+0

Cảm ơn một triệu, nó đã hoạt động :) –

+0

do bạn biết tại sao điều này không kích hoạt sự kiện thay đổi trong vùng văn bản không? – user3281466

+1

@ user3281466: đặt giá trị theo lập trình không kích hoạt sự kiện 'thay đổi'.Bạn có thể tự làm điều đó nếu bạn muốn bằng cách gọi '.change' sau khi đặt giá trị. –

0

Bạn có thể loại bỏ văn bản từ textarea như thế này:

$("#commentField").html(""); 

EDIT: ok, điều này d oes không làm việc, nhưng tôi thực sự quan tâm đến lý do tại sao, và tôi hiểu cuộc bỏ phiếu xuống. Tôi luôn nghĩ rằng văn bản giữa các thẻ textarea là innerHTML và html() được cho là thay thế. Nó sẽ không có ý nghĩa để có textarea như đầu vào? hoặc là nó chỉ vì textareas chứa một lượng văn bản dài mà sẽ trông tacky giữa các dấu ngoặc kép ?.

Sử dụng javascript thông thường với innerHTML nó hoạt động cho tôi trong FF6. demo here

+0

-1 Ah nhưng bạn không thể: http://jsfiddle.net/jamwaffles/bbdTC/ – Bojangles

+0

@JamWaffles, vui lòng xem chỉnh sửa của tôi! –

+1

Thực ra, việc giảm giá là không công bằng ở đây; Tôi đã bị mắc kẹt với cùng một vấn đề, do đó fiddle. Tôi cũng giả định rằng, vì nó nằm giữa các thẻ, '.html()' hoặc '.text()' sẽ có tác dụng, nhưng rõ ràng là không. Có lẽ jQuery có một trường hợp đặc biệt cho 'textarea' để nó sử dụng' .val() 'giống như tất cả các đầu vào khác. – Bojangles

3

Kể từ textarea là một lĩnh vực đầu vào nó có một tài sản value vì vậy bạn phải sử dụng phương pháp val(). Hãy thử điều này

$("#commentField").val(''); 
1

Trong jQuery nó thực sự $("#commentField").val(" ");

-1

1) <textarea name="editor1" id="editor1" rows="10" cols="80"></textarea>
2) CKEDITOR.replace('editor1');
3) initiated = true;
để viết văn bản của bạn trong bạn vùng văn bản
1) $("#editor1").val("your input value");
để làm sạch khu vực văn bản của bạn
1) $("#editor1").reset();
bể bạn đọc.

+0

Câu hỏi không đề cập đến CKEditor. – rvighne