làm thế nào để lấy giá trị của một textarea trong jquery?


81

tôi có biểu mẫu này và tôi đang cố gắng lấy giá trị từ vùng văn bản. vì lý do nào đó nó không muốn.

<form action="/profile/index/sendmessage" method="post" enctype="application/x-www-form-urlencoded">
    <div class="upload_form">
        <dt id="message-label"><label class="optional" for="message">Enter Message</label></dt>
        <dd id="message-element">
        <textarea cols="60" rows="5" id="message" name="message"></textarea></dd>
        <dt id="id-label">&nbsp;</dt>
        <dd id="id-element">
        <input type="hidden" id="id" value="145198" name="id"></dd>
        <dt id="send_message-label">&nbsp;</dt>
        <dd id="send_message-element">
        <input type="submit" class="sendamessage" value="Send" id="send_message" name="send_message"></dd>
    </div>
</form>


$("input.sendamessage").click(function(event) {
    event.preventDefault();

    var message = $('textarea#message').html();
    var id      = $('input#id').val();

    console.log(message + '-' + id);
});

hoặc jsfiddle

bất kỳ ý tưởng?

Câu trả lời:


156

Giá trị của textarea cũng được lấy bằng valphương thức:

var message = $('textarea#message').val();




5

Bạn không cần sử dụng textarea#message

var message = $('textarea#message').val();

Bạn có thể trực tiếp sử dụng

var message = $('#message').val();

2

Bạn nên kiểm tra textarea là null trước khi sử dụng val (), nếu không, bạn sẽ gặp lỗi không xác định.

if ($('textarea#message') != undefined) {
   var message = $('textarea#message').val();
}

Sau đó, bạn có thể làm bất cứ điều gì với tin nhắn.


Điều này là không chính xác. jQuery không bao giờ trả về không xác định cho bất kỳ truy vấn nào. Thay vào đó, nó trả về một tập hợp trống. Tuy nhiên, việc gọi val trên một tập hợp rỗng trả về giá trị không xác định, nhưng câu trả lời của bạn không giải quyết được vấn đề này.
Xiyng

2

$('textarea#message')không thể là không xác định (nếu theo $ý bạn thì tất nhiên là jQuery).

$('textarea#message')có thể có độ dài 0 và sau đó $('textarea#message').val()sẽ trống rỗng



2

Bạn cũng có thể nhận giá trị theo thuộc tính tên của phần tử .

var message = $("#formId textarea[name=message]").val();

1

Bạn không cần sử dụng .html(). Bạn nên đi với .val().

Từ tài liệu của .val():

Các .val()phương pháp chủ yếu được sử dụng để có được các giá trị của các yếu tố hình thức như input, selecttextarea. Khi được gọi trên một tập hợp rỗng, nó sẽ trả về undefined.

var message = $('#message').val();

1

tất cả các Giá trị luôn được sử dụng .val().

xem đoạn mã dưới đây:

var message = $('#message').val();

-1

Bạn cũng có thể nhận giá trị theo tên thay vì id như sau:

var message = $('textarea:input[name=message]').val();
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.