如何在jquery中获取textarea的值?

时间:2012-05-08 22:10:32

标签: javascript jquery textarea

我有这个表单,我试图从文本区域获取值。由于某种原因,它不想。

<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

任何想法?

12 个答案:

答案 0 :(得分:120)

textarea的值也采用val方法:

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

答案 1 :(得分:20)

您需要将.val()用于textarea,因为它是一个元素而不是包装器。试试

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

Updated fiddle

答案 2 :(得分:16)

您应该使用val()代替html()

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

答案 3 :(得分:7)

在javascript中:

document.getElementById("message").value

答案 4 :(得分:4)

您无需使用textarea#message

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

您可以直接使用

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

答案 5 :(得分:3)

在使用val()之前,你应该检查textarea为null,否则你将得到未定义的错误。

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

然后,你可以对消息做任何事情。

答案 6 :(得分:2)

您还可以通过元素的 name属性来获取值。

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

答案 7 :(得分:1)

$('textarea#message')无法定义(如果$你的意思是jQuery)。

$('textarea#message')的长度为0,然后$('textarea#message').val()为空,

答案 8 :(得分:1)

您无需使用.html()。你应该使用.val()

来自.val()的文件:

  

.val()方法主要用于获取表单元素的值,例如inputselecttextarea。在空集合上调用时,它将返回undefined

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

答案 9 :(得分:1)

您可以直接使用

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

了解更多@ Get the Value of TextArea using the jQuery Val () Method

答案 10 :(得分:0)

您还可以按名称获取值,而不是像这样的ID:

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

答案 11 :(得分:-1)

所有值始终使用.val()

见下面的代码:

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