jqueryでtextareaの値を取得する方法は?


82

私はこのフォームを持っていて、テキスト領域から値を取得しようとしています。どういうわけかそれはしたくありません。

<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

何か案は?

回答:


158

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

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


18

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は、どのクエリに対しても未定義を返すことはありません。代わりに、空のセットを返します。ただし、空のセットでvalを呼び出すと、未定義が返されますが、答えはこの問題を解決しません。
Xiyng

2

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

$('textarea#message')長さが0の場合$('textarea#message').val()は空になり、それだけです



2

要素のname属性で値を取得することもできます

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

1

を使用する必要はありません.html()。あなたはと行くべき.val()です。

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

.val()この方法は、主などのフォーム要素の値を取得するために使用されinputselectそしてtextarea。空のコレクションで呼び出されると、を返しますundefined

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

1

すべての値は常に .val()。でます。

以下のコードを参照してください。

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

-1

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

var message = $('textarea:input[name=message]').val();
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.