[JS] waarde weergeven

Pagina: 1
Acties:

  • Tjeemp
  • Registratie: Januari 2005
  • Laatst online: 03-01-2015

Tjeemp

BEER N TEA

Topicstarter
ik heb een script dat op de druk van een knop een inputveldje erbij gooit, dat werkt allemaal goed, maar nu heb ik geen idee hoe ik de waarde van dat veld moet lezen....

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<script type="text/javascript">
    function insertRow()
    {
        var para = document.getElementById("hold");

        var newtextbox1 = document.createElement("input")
        newtextbox1.setAttribute('type', 'text');
        newtextbox1.setAttribute('name', 'answer');

        var newbrake1 = document.createElement("br")

        para.appendChild(newtextbox1);
        para.appendChild(newbrake1);
        para.appendChild(newbrake1);
    }
    function submit_it()
    {
        document.write(document.myform.answer.value);
    }
</script>


bij de function submit_it() wil ik de waarde weergeven...

heeft iemand enig idee hoe ik dat moet doen?

www.timovanderzanden.nl | Beer 'n' Tea


Verwijderd

je bent al behoorlijk met dom bezig, doe dat dan ook in die laatste functie...

  • Tjeemp
  • Registratie: Januari 2005
  • Laatst online: 03-01-2015

Tjeemp

BEER N TEA

Topicstarter
haha, zie hem nou, maar punt is nu... normaal in een form zouden de waardes die in een input komen met dezelfde naam een array vormen als ik echter de waarde opvraag van het object met een getElementById krijg ik er maar 1, dat is tevens de eerste die ie tegenkomt, hoe kan ik er voor zorgen dat ik alle waardes terugkrijg?

www.timovanderzanden.nl | Beer 'n' Tea


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Sowieso mogen meerdere elementen niet dezelfde id hebben :). getElementById heet ook niet getElementByIds, dus inderdaad: je krijgt maar 1 element terug.

Wat je wel weer kan doen, is getElementsByTagName gebruiken en daardoorheen itereren, checken of de name overeenkomt en de waardes zelf in een array stoppen. Vraag me alleen af. Je wilt een array maken van alle elementen met dezelfde naam? Waarom niet gewoon die waardes (desnoods met getElementById) ophalen en weergeven?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 22:00

crisp

Devver

Pixelated

timovdz schreef op vrijdag 07 april 2006 @ 10:40:
haha, zie hem nou, maar punt is nu... normaal in een form zouden de waardes die in een input komen met dezelfde naam een array vormen als ik echter de waarde opvraag van het object met een getElementById krijg ik er maar 1, dat is tevens de eerste die ie tegenkomt, hoe kan ik er voor zorgen dat ik alle waardes terugkrijg?
Door de DOM te traversen. Een ID hoort uniek te zijn in een document dus je moet op een andere manier je elementen selecteren, bijvoorbeeld op tagName, op een css class of op andere kenmerken.
Daar zijn tools voor; een Xpath comes to mind, Dean's cssQuery of een simpele getElementsByClassName implementatie. Zoekt en gij zult vinden ;)

Intentionally left blank


Verwijderd

zeg dan dat je er meer hebt :)

document.forms['myform'].elements['answer'] geeft idd een nodelist (geen array) terug

loop die door en je hebt je waarden

  • killercow
  • Registratie: Maart 2000
  • Laatst online: 20-02 08:34

killercow

eth0

misschien kun je de reference naar je text veld gewoon global maken?
Dan kun je hem in de voglende functie aanroep weer gewoon gebruiken zonder dat je hem via getElementById hoeft op te snorren.

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<script type="text/javascript">
var newtextbox1;
    function insertRow()
    {
        var para = document.getElementById("hold");

        newtextbox1 = document.createElement("input")
        newtextbox1.setAttribute('type', 'text');
        newtextbox1.setAttribute('name', 'answer');

        var newbrake1 = document.createElement("br")

        para.appendChild(newtextbox1);
        para.appendChild(newbrake1);
    }
    function submit_it()
    {
        document.write(newtextbox1.value);
    }
</script>


Daarnaast kun je volgens mij niet 2 keer het zelfde element toevoegen aan de DOM, dus zul je 2 br objects moeten maken, of het gewoon netjes met css oplossen.

Clonen kan inderdaad, maar dat is toch niet wat hij deed.

[ Voor 10% gewijzigd door killercow op 07-04-2006 11:04 ]

openkat.nl al gezien?


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 22:00

crisp

Devver

Pixelated

killercow schreef op vrijdag 07 april 2006 @ 10:54:
Daarnaast kun je volgens mij niet 2 keer het zelfde element toevoegen aan de DOM, dus zul je 2 br objects moeten maken, of het gewoon netjes met css oplossen.
clonen ;)

Intentionally left blank

Pagina: 1