Pobranie zawartości inputa z div

Odpowiedz Nowy wątek
2011-07-27 18:25
0

Cześć, problem niby banalny, ale mi nie działa. Mam takiego htmla:

<div id="box" name="box">
  <input type="text" name="mail" />
  <button onclick="foo()">OK</button>
</div>

Uzytkownik wpisuje sobie coś co inputa i po wciśnięciu przycisku ma się pokazać w alercie to, co tam wpisał. UWAGA! Funkcja foo ma być bez parametrów.

Moja funkcja teoretycznie powinna działać - wg tego, co piszą w necie wszyscy. Niestety nie działa i efektem jej wykonania jest alert z tekstem: "null", zamiast tego, co wpisuje użytkownik:

function foo()
{
  myDiv = document.getElementById('box');
  edit = myDiv.getElementsByTagName('input');
  alert(edit[0].getAttribute('value'));
}

Czemu to nie działa?

edytowany 3x, ostatnio: Juhas, 2011-07-27 18:43

Pozostało 580 znaków

2011-07-28 09:12
MJ
0

Do input dodaj atrybut id="mojeid".
Potem


var inp = document.getElementById("mojeid");
alert(inp.value);

Proponuje opczytac o Document Object Model.

Pozostało 580 znaków

2011-07-28 12:09
0
function foo()
{
  myDiv = document.getElementById('box');
  edit = myDiv.getElementsByTagName('input');
  alert(edit[0].value); 
}

EDIT//
A czemu nie działało bo Value nie jest atrybutem tego input nie wiem jak to wytłumaczyć ale w przypadku tego input jest nim type i name gdyby był np. taki input:
<input type="submit" value="Wyślij" /> to ma atrybuty value i type. Chyba czaisz?


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
edytowany 3x, ostatnio: kAzek, 2011-07-28 12:18

Pozostało 580 znaków

2011-07-28 17:29
0
kAzek napisał(a)
function foo()
{
myDiv = document.getElementById('box');
edit = myDiv.getElementsByTagName('input');
alert(edit[0].value); 
}

Tak też próbowałem i nie działa.

Wersja z getElementById działa. Teraz niech ktoś mi wytłumaczy, czemu działa ...ById, a ...ByName już nie

edytowany 1x, ostatnio: Juhas, 2011-07-28 17:31
Dziwne bo u mnie działa próbowałem w IE i FF. Chyba coś namieszałeś ale nie mam pojęcia co :/ - kAzek 2011-07-28 20:32

Pozostało 580 znaków

2011-07-28 17:38
0
Juhas napisał(a)
kAzek napisał(a)
function foo()
{
myDiv = document.getElementById('box');
edit = myDiv.getElementsByTagName('input');
alert(edit[0].value); 
}

Tak też próbowałem i nie działa.

Wersja z getElementById działa. Teraz niech ktoś mi wytłumaczy, czemu działa ...ById, a ...ByName już nie

Tylko czy na pewno pierwszy napotkany input (bo używasz indeksu #0) to faktycznie ten, o którym myślisz? Czy w dokumencie nie ma gdzieś wcześniej innych inputów/formularzy/wtf? Sposób z ID jest pewniejszy bo określa jednoznacznie do czego się odwołujesz.


Women were the reason I became a monk - and, ah, the reason I switched back...

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0