как получить значение текстового поля в jQuery?


У меня есть такая форма и я пытаюсь получить значение из текстового поля. почему-то не хочет.

<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

какие идеи?

11 57

11 ответов:

значение textarea также берется с val способ:

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

вы должны использовать .val() для textarea, поскольку это элемент, а не обертка. Попробуй

$('textarea#message').val()

обновленный скрипку

вы должны использовать val() вместо html()

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

в javascript:

document.getElementById("message").value

вам не нужно использовать textarea#message

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

вы можете напрямую использовать

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

вы должны проверить textarea является null перед использованием val () в противном случае, вы получите неопределенную ошибку.

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

тогда, вы могли бы сделать что-то с сообщением.

$('textarea#message') не может быть определен (если $ вы имеете в виду jQuery, конечно).

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

вы можете напрямую использовать

var message = $.trim($("#message").val());

Читать далее @ получить значение TextArea с помощью метода jQuery Val ()

все значения всегда берутся .val ();

смотрите код bello

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

вам не нужно использовать .html(). Вы должны пойти с .val().

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

The .val() метод в основном используется для получения значений элементов формы, таких как input,select и textarea. При вызове пустой коллекции она возвращает undefined.

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

вы также можете получить значение по имени вместо id следующим образом:

var message = $('textarea:input[name=message]').val();