如何在jQuery中获取textarea的值?


81

我有这种形式,即时通讯试图从文本区域获取价值。由于某种原因,它不想这样做。

<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

有任何想法吗?

Answers:


156

textarea的值也可以通过以下val方法获取:

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


17

您应该使用val()而不是html()

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


5

你不需要用 textarea#message

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

您可以直接使用

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

2

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

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

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


这是不正确的。jQuery绝不会为任何查询返回undefined。而是返回一个空集。但是,在空集上调用val会返回未定义的值,但是您的答案不能解决此问题。
西安

2

$('textarea#message')不能不确定(如果$您是指jQuery,当然)。

$('textarea#message')长度可能为0,然后$('textarea#message').val()为空,仅此而已



2

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

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

1

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

从文档.val()

.val()方法主要用于获得形式元素如的值inputselecttextarea。在空集合上调用时,它返回undefined

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


-1

您还可以按名称而不是id来获取值,如下所示:

var message = $('textarea:input[name=message]').val();
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.