как получить значение текстового поля в 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"> </dt>
<dd id="id-element">
<input type="hidden" id="id" value="145198" name="id"></dd>
<dt id="send_message-label"> </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 ответов:
вы должны использовать
.val()
для textarea, поскольку это элемент, а не обертка. Попробуй$('textarea#message').val()
вам не нужно использовать
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 ()
вам не нужно использовать
.html()
. Вы должны пойти с.val()
.из документа
.val()
:The
.val()
метод в основном используется для получения значений элементов формы, таких какinput
,select
иtextarea
. При вызове пустой коллекции она возвращаетundefined
.var message = $('#message').val();