j'ai cette forme et im essayant d'obtenir la valeur de la zone de texte. pour une raison quelconque, il ne veut pas.
<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);
});
ou jsfiddle
des idées?
La valeur de textarea est également prise avec la méthode val
:
var message = $('textarea#message').val();
Vous devez utiliser .val()
pour textarea car il s'agit d'un élément et non d'un wrapper. Essayer
$('textarea#message').val()
vous devriez utiliser val()
au lieu de html()
var message = $('#message').val();
en javascript:
document.getElementById("message").value
Vous n'avez pas besoin d'utiliser textarea#message
var message = $('textarea#message').val();
Vous pouvez utiliser directement
var message = $('#message').val();
Vous devriez vérifier que la zone de texte est nulle avant d'utiliser val (), sinon vous obtiendrez une erreur indéfinie.
if ($('textarea#message') != undefined) {
var message = $('textarea#message').val();
}
Ensuite, vous pouvez faire n'importe quoi avec un message.
Vous pouvez utiliser directement
var message = $.trim($("#message").val());
Lire plus @ Obtenir la valeur de TextArea à l'aide de la méthode jQuery Val ()
Vous n'avez pas besoin d'utiliser .html()
. Vous devriez aller avec .val()
.
Extrait de la doc de .val()
:
La méthode
.val()
est principalement utilisée pour obtenir les valeurs d'éléments de formulaire tels queinput
,select
ettextarea
. Lorsqu'il est appelé sur une collection vide, il retourneundefined
.
var message = $('#message').val();
$('textarea#message')
ne peut pas être indéfini (si par $
vous voulez dire jQuery bien sûr).
$('textarea#message')
peut être de longueur 0 puis $('textarea#message').val()
serait vide, c'est tout
Vous pouvez également obtenir une valeur par nom au lieu de id comme ceci:
var message = $('textarea:input[name=message]').val();