web-dev-qa-db-fra.com

Comment obtenir la valeur d'un textarea dans jQuery?

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">&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);
});

ou jsfiddle

des idées?

66
Patrioticcow

La valeur de textarea est également prise avec la méthode val:

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

Vous devez utiliser .val() pour textarea car il s'agit d'un élément et non d'un wrapper. Essayer

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

violon mis à jour

21

vous devriez utiliser val() au lieu de html()

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

en javascript:

document.getElementById("message").value
7

Vous n'avez pas besoin d'utiliser textarea#message

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

Vous pouvez utiliser directement

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

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.

3
Wuji

Vous pouvez utiliser directement

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

Lire plus @ Obtenir la valeur de TextArea à l'aide de la méthode jQuery Val ()

1
jonathan klevin

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 que input, select et textarea. Lorsqu'il est appelé sur une collection vide, il retourne undefined.

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

$('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

1
Zbyszek Swirski

Vous pouvez également obtenir une valeur par nom au lieu de id comme ceci:

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