如何在 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

有什么想法吗?

354375 次浏览

文本面积值也采用 val方法计算:

var message = $('textarea#message').val();
console.log(message);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea cols="60" rows="5" id="message" name="message">
Hello,
world!
</textarea>

您需要对 textarea 使用 .val(),因为它是一个元素,而不是一个包装器

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

更新小提琴

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

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

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

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

然后,你可以做任何与信息。

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

$('textarea#message') may be of length 0 and then $('textarea#message').val() would be empty that's all

所有值始终采用 .val()

请参阅下面的代码:

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

您不需要使用 textarea#message

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

You can directly use

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

Javascript:

document.getElementById("message").value

您还可以通过名称获取值,而不是像下面这样通过 id 获取值:

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

你不需要使用 .html()。你应该使用 .val()

来自 .val()的文档:

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

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

你可以直接使用

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

阅读更多@Get the Value of TextArea using the jQuery Val () Method

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

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