2012-08-02 16 views
5

Ich versuche, den Inhalt einer Textarea zu lesen, aber .val() funktioniert nicht für meine Textarea. Ich würde mich freuen, wenn jemand eine Lösung für mich hat. Hier ist mein Code:JQuery: .val() funktioniert nicht für TextArea

HTML:

<textarea id="details" class="required" rows="5"></textarea> 

JS:

$.ajax({ 
     type: "GET", 
     url: "reserve.php", 
     data: { 
      details : $('#details').val(), 
      ... 
     }, 
     ... 
}); 

Thank you!

+0

Vielleicht haben Sie ein anderes Element mit ID = "Details" auf Ihrer Seite? – Rodik

+0

.val() arbeitet an Textareas, überprüfen Sie, ob Ihre Rechtschreibung richtig ist und keine "," auf dem letzten Parameter – Ziinloader

+0

'.val()' funktioniert in dem Sinne, dass der tatsächliche Wert der Textarea zurückgegeben wird. Definieren Sie "nicht funktioniert"? –

Antwort

5

val() funktioniert gut ... Sie müssen Ihren Fehler woanders haben.

Example

Wahrscheinlich Ihre Wähler in nicht übereinstimmen. Prüfen Sie, ob Fehler, und wenn Sie angewendet, um die richtige Vorsilbe (# für ID oder . für Klasse)

+0

Endlich keine falsche Antwort! –

+0

nicht funktioniert bedeutet $ ('# details'). Val() gibt den Wert 'undefiniert' zurück – Trinityx89x

+1

@ user1571064 Dann ist Ihr Selektor falsch. '$ ('# details')' gibt eine leere jQuery-Sammlung zurück und '.val()' gibt daher 'undefined' zurück. –

1

Details: encodeURIComponent (. $ ('# Details') val())

5

Dies ist eine gültige Anfrage, wie ich habe genau dieses gleiche Problem erlebt und berichten kann der folgende:

  • Nein - es ist nicht der Wähler, ein gültiges Objekt zurückgegeben wird
  • Nein - es ist nur ein Element mit dieser ID
  • Nein - es ist nein ungültige HTML oder schlechte Tag Nutzung soweit ich

Ja gesehen habe - es gibt eine Antwort, die nicht ein Hack oder fehlerhafter Code ist:

$ ('# myTextArea') [0] .value

2

Ich hatte das gleiche Problem. Die Lösung in meinem Fall war, da gab es zwei Elemente mit der ID "Kommentar". Die jQuery hat den Wert der ersten zurückgegeben, die leer war. Wenn ich den Quellcode angeschaut habe, habe ich nur einen gesehen, da der zweite nach einem AJAX-Aufruf hinzugefügt wurde. Aber wenn im Inspektor nach "Kommentar" (einschließlich der Zitate) gesucht wird, sah ich beide Elemente. Ich hoffe das hilft dir auch.

1

Seltsamerweise hatte ich ein ähnliches Problem versucht alle Textareas zu leeren. Es war kein Selektorproblem, da ich alle Textfelder auf der Seite mit $ ('textarea') auswählte. Ich habe festgestellt, dass Folgendes funktioniert: $ ('textarea'). Text ('');

So können Sie versuchen, die Textfläche mit: $ ('Textarea'). Text ('mein neuer Wert');

+0

Das hat auch bei mir funktioniert .... – Ananth

+0

Du Legende! Vielen Dank – James

0

Mein Problem war, dass ich einen Namens-Selektor anstelle eines ID-Selektors verwendet habe.

, d.h.:

Werke:

'content': $(this).find('#text_content').val(), 

funktioniert nicht:

'content' : $(this).find('input[name=text_content]').val(), 

nicht sicher, warum der Name Wähler nicht für das Textfeld nicht funktioniert (es für alle anderen Bereichen gearbeitet hat), aber es Sie haben es.