2012-08-02 17 views
5

Próbuję przeczytać treść textarea, ale .val() nie działa dla mojego textarea. Byłbym szczęśliwy, jeśli ktoś ma rozwiązanie dla mnie. Oto mój kod:JQuery: .val() nie działa dla textarea

HTML:

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

JS:

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

Dziękujemy!

+0

Być może masz jeszcze jeden element o id = "details" na swojej stronie? – Rodik

+0

.val() pracuje nad tekstami, sprawdza czy twoja pisownia jest poprawna i nie ma żadnego "," na ostatnim parametrze – Ziinloader

+0

'.val()' działa dobrze w tym sensie, że zwracana jest rzeczywista wartość textarea. Zdefiniuj "nie działa"? –

Odpowiedz

5

val() działa dobrze ... Musisz mieć swój błąd gdzie indziej.

Example

Prawdopodobnie Twój selektor w nie pasujące. Sprawdź, literówek i jeśli zastosowano prawidłowy prefiks (# dla identyfikatora lub . dla klasy)

+0

Wreszcie nie jest zła odpowiedź! –

+0

nie działa oznacza, że ​​$ ("# details"). Val() zwraca wartość "undefined" – Trinityx89x

+1

@ user1571064 Następnie selektor jest niepoprawny. '$ ('# details')' zwraca pustą kolekcję jQuery, a '.val()' zwróci wartość 'undefined'. –

1

szczegóły: encodeURIComponent (. $ ('# Szczegóły') val())

5

Jest to ważny wniosek, jak mam doświadczenie dokładnie ten sam problem i może zgłosić następujące:

  • nie - to nie jest przełącznik, jeden ważny obiekt jest zwracany
  • nie - istnieje tylko jeden element z tym id
  • nie - nie nie jest nieważne czy zły tag HTML Wykorzystanie miarę Widziałem

Tak - nie jest odpowiedzią, że nie jest hack lub zły kod:

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

2

Miałem ten sam problem. Rozwiązaniem w moim przypadku było, że były dwa elementy o id "komentarz". jQuery zwrócił wartość pierwszego, który był pusty. Gdy spojrzałem na kod źródłowy, zobaczyłem tylko jeden, ponieważ drugi został dodany po wywołaniu AJAX. Ale kiedy jest wyszukiwane w inspektorze dla "komentarza" (w tym cytatów) zobaczyłem oba elementy. Mam nadzieję, że to wam pomoże.

1

O dziwo, miałem podobny problem, próbując opróżnić wszystkie teksty. Nie był to problem z selektorem, ponieważ wybrałem wszystkie teksty na stronie za pomocą $ ("textarea"). Znalazłem, że działało: $ ("textarea"). Text ('');

Możesz spróbować ustawić obszar tekstowy za pomocą: $ ("textarea"). Text ("moja nowa wartość");

+0

To działało również dla mnie .... – Ananth

+0

You legend! Dzięki – James

0

Mój problem polegał na tym, że używałem selektora nazwy zamiast selektora identyfikatora.

tj.:

utwory:

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

nie działa:

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

Nie wiem, dlaczego selektor nazwa nie działa dla textarea (pracował dla wszystkich innych dziedzin), ale nie masz to.

Powiązane problemy