私はこのフォームを持っており、テキストエリアから値を取得しようとしています。何らかの理由でそれはしたくない。
<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"> </dt>
<dd id="id-element">
<input type="hidden" id="id" value="145198" name="id"></dd>
<dt id="send_message-label"> </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
何か案は?
Textareaの値はval
メソッドでも取得されます:
var message = $('textarea#message').val();
val()
の代わりにhtml()
を使用する必要があります
var message = $('#message').val();
javascriptで:
document.getElementById("message").value
textarea#message
を使用する必要はありません
var message = $('textarea#message').val();
直接使用できます
var message = $('#message').val();
Val()を使用する前に、textareaがnullであることを確認する必要があります。そうでない場合、未定義エラーが発生します。
if ($('textarea#message') != undefined) {
var message = $('textarea#message').val();
}
その後、メッセージで何でもできます。
.html()
を使用する必要はありません。 .val()
を使用する必要があります。
.val()
のドキュメントから:
.val()
メソッドは、主にinput
、select
、textarea
などのフォーム要素の値を取得するために使用されます。空のコレクションで呼び出されると、undefined
を返します。
var message = $('#message').val();
$('textarea#message')
を未定義にすることはできません($
によってjQueryを意味する場合)。
$('textarea#message')
の長さは0で、その後$('textarea#message').val()
は空になります
次のように、idの代わりに名前で値を取得することもできます。
var message = $('textarea:input[name=message]').val();