як отримати значення текстової області в jquery?


82

я маю цю форму, і я намагаюся отримати значення з текстової області. чомусь не хоче.

<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);
});

або jsfiddle

будь-які ідеї?

Відповіді:


158

Значення текстової області також приймається за valметодом:

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




5

Вам не потрібно користуватися textarea#message

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

Ви можете безпосередньо використовувати

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

2

Перш ніж використовувати val (), слід перевірити, чи є текстове поле нульовим, інакше ви отримаєте невизначену помилку.

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

Тоді ви можете робити що завгодно із повідомленнями.


Це неправильно. jQuery ніколи не повертає невизначений для будь-якого запиту. Натомість він повертає порожній набір. Однак виклик val для порожнього набору повертає undefined, але ваша відповідь не вирішує цю проблему.
Xiyng

2

$('textarea#message')не може бути невизначеним (якщо, $звичайно, ви маєте на увазі jQuery).

$('textarea#message')може мати довжину 0, а потім $('textarea#message').val()буде порожнім, ось і все



2

Ви також можете отримати значення за атрибутом name name .

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

1

Вам не потрібно користуватися .html(). Ви повинні піти з .val().

З документа .val():

.val()Метод в основному використовується для отримання значень елементів форми , таких як input, selectі textarea. При виклику порожньої колекції вона повертається undefined.

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

1

усі цінності завжди приймаються з .val() .

дивіться код нижче:

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

-1

Ви також можете отримати значення за іменем, а не за ідентифікатором, як це:

var message = $('textarea:input[name=message]').val();
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.