web-dev-qa-db-ja.com

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

何か案は?

64
Patrioticcow

Textareaの値はvalメソッドでも取得されます:

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

Textareaはラッパーではなく要素なので、.val()を使用する必要があります。試してみる

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

更新されたフィドル

20

val()の代わりにhtml()を使用する必要があります

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

javascriptで:

document.getElementById("message").value

textarea#messageを使用する必要はありません

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

直接使用できます

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

Val()を使用する前に、textareaがnullであることを確認する必要があります。そうでない場合、未定義エラーが発生します。

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

その後、メッセージで何でもできます。

3
Wuji

直接使用できます

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

続きを読む@ jQuery Val()メソッドを使用してTextAreaの値を取得

1
jonathan klevin

.html()を使用する必要はありません。 .val()を使用する必要があります。

.val() のドキュメントから:

.val()メソッドは、主にinputselecttextareaなどのフォーム要素の値を取得するために使用されます。空のコレクションで呼び出されると、undefinedを返します。

var message = $('#message').val();
1
Jawwad Ali Khan

$('textarea#message')を未定義にすることはできません($によってjQueryを意味する場合)。

$('textarea#message')の長さは0で、その後$('textarea#message').val()は空になります

1
Zbyszek Swirski

次のように、idの代わりに名前で値を取得することもできます。

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