Muszę uzyskać wartość obszaru tekstowego, używając swojej nazwy w czystym javascript

<textarea cols="70" rows="3" name="tempText">This is a Textarea</textarea>

Próbowałem z tym, ale nie działa pokazując błąd Błąd

document.getElementByName("tempText").value
-2
Anu Sree 27 czerwiec 2017, 08:56

4 odpowiedzi

Najlepsza odpowiedź

Jest wiele sposobów. Oto dwa najprostsze

var textarea = document.querySelector('textarea[name="tempText"]');
console.log(textarea.value);

LUB

var textarea = document.getElementsByName('tempText')[0];
console.log(textarea.value);
1
AdityaParab 27 czerwiec 2017, 06:01

To getElementsByName. Tutaj zauważyłeś mnoga getElements. Zwraca tablicę podobną do elementów z tym atrybuciem nazwy.

Metoda getElementsByName() zwraca kolekcję wszystkich elementów w dokumencie z określoną nazwą (wartość atrybutu nazwy), jako NodeList object.

Obiekt NodeList reprezentuje zbiór węzłów. Chociaż NodeList nie jest tablicą, możliwe jest, aby iterować go przy użyciu forEach(). Indeks zaczyna się od 0.

console.log(document.getElementsByName("tempText")[0].value);
0
Community 20 czerwiec 2020, 09:12

Próbować:

document.getElementsByName("tempText")[0].value

Jeśli jesteś pewien, że masz tylko jeden element (Textarea) z tą nazwą.

0
mehulmpt 27 czerwiec 2017, 05:57

Literówka: powinno być getElementsByName nie getElementByName

getElementsByName Zwraca kolekcję nodę z daną nazwą w dokumencie (X) HTML. Musisz więc określić indeks elementu, do którego chcesz uzyskać dostęp. W twoim przypadku użyj 0, aby uzyskać wartość. Czytaj więcej

console.log(document.getElementsByName("tempText")[0].value);
<textarea cols="70" rows="3" name="tempText">This is a Textarea</textarea>
3
Dinesh undefined 27 czerwiec 2017, 07:19