[JavaScript/ HTML] Form gek gedrag of verklaarbaar?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Stekeltje
  • Registratie: November 2005
  • Laatst online: 18-09 15:02

Stekeltje

Nothing to see here move along

Topicstarter
Ik ben bezig met een kleine calculator, deze calculator moet text omzetten naar getallen en een kleine berekening doen.

Zo gezegd zo gedaan zou je zeggen?

Allereerst post ik mijn code even, deze staat tijdelijk in de header van mijn html pagina.
JavaScript:
1
2
3
4
5
6
7
function calc()
{   
    var testVar = "";
    testVar = document.forms['inputBox'].elements['countLights'].value;
    //outputBox.newEnergy.innerHMTL = '200';
    alert("Hoi het javascript werkt?" + testVar);
}

In mijn body heb ik het volgende stukje staan:
HTML:
1
2
3
4
5
6
7
8
<div id="inputbox">
    <form name="inputBox" action="">
        <table width="850px">
        <tr>
            <td>How many <b>streetlights</b> are you going to use?</td>
            <td><input type="text" id="countLights" name="countLights" value="200" size="5" align="right"/> pcs</td>
                        <td style="border-left:solid 1px #cfcfcf;"></td>
                </tr>


Wat er gebeurd: ik krijg mooi een alert met daarin: "Hoi het javascript werkt? undefined".

Waarom komt er op deze plek geen 200 te staan zoals je zou verwachten. Dit is mijn eerste zelf gebrouwen javascript dus ik zal vast iets verkeerds doen. Ik krijg het NIET gevonden op google. Mis ik wat zoek woorden?

Ik zoek op: how to fix value input tag undefined en variaties daarop.

Acties:
  • 0 Henk 'm!

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 20:45

RM-rf

1 2 3 4 5 7 6 8 9

Wat doet de functie "getValue()" ?
het lijkt me dat daarin ergens wat foutgaat of mogelijk zelfs ben je vergeten die functie te definieren.

als het verder enkel gaat om het overnemen van de waarde van diie inputbox, zou ook

JavaScript:
1
testVar = document.forms['inputBox'].elements['countLights'].value ;

moeten voldoen

[ Voor 41% gewijzigd door RM-rf op 24-02-2012 10:22 ]

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


Acties:
  • 0 Henk 'm!

  • Stekeltje
  • Registratie: November 2005
  • Laatst online: 18-09 15:02

Stekeltje

Nothing to see here move along

Topicstarter
F*ck verkeerde code, moment pas hem even aan

Dit is de goede:
JavaScript:
1
2
3
4
5
6
7
function calc()
{   
    var testVar = "";
    testVar = document.forms['inputBox'].elements['countLights'].value;
    //outputBox.newEnergy.innerHMTL = '200';
    alert("Hoi het javascript werkt?" + testVar);
}


edit:
Nee dat werkt dus niet op de een of andere manier, dat is ook het enige wat ik kan vinden op google :S ?

[ Voor 18% gewijzigd door Stekeltje op 24-02-2012 10:24 ]


Acties:
  • 0 Henk 'm!

  • Joolee
  • Registratie: Juni 2005
  • Niet online
Installeer eens Firebug of andere debug software en voer dan uit: console.debug(document);
Dan kun je zelf bladeren naar document.forms[... enz. en zien of er wel bestaat wat je probeert te benaderen.

Acties:
  • 0 Henk 'm!

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 20:45

RM-rf

1 2 3 4 5 7 6 8 9

Stekeltje schreef op vrijdag 24 februari 2012 @ 10:23:
F*ck verkeerde code, moment pas hem even aan

Dit is de goede:
JavaScript:
1
2
3
4
5
6
7
function calc()
{   
    var testVar = "";
    testVar = document.forms['inputBox'].elements['countLights'].value;
    //outputBox.newEnergy.innerHMTL = '200';
    alert("Hoi het javascript werkt?" + testVar);
}


edit:
Nee dat werkt dus niet op de een of andere manier, dat is ook het enige wat ik kan vinden op google :S ?
waneer roep je die functie calc() aan... als die ook in de header aangeroepen wordt, bestaat dat formulier nog niet, dat word pas gerenderd als de hele html gerendert is...
dus bv op een button als onclick event zou je functie wél moeten werken...

als het dat nog steeds niet doet, moet je debuggen door het object terug af te lopen... dus eerst controleren of je functie wél dat form zelf vind dmv
JavaScript:
1
alert("Hoi het javascript werkt? " + document.forms['inputBox']);


die zou daar [Form Element] moeten teruggeven, als daar al undefined staat betekent dat dat het hele formulier niet gevonden wordt, mogelijk doordat die Name niet uniek is, er meerdere formuleiren met dezelfd naam op die pagina staan.

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


Acties:
  • 0 Henk 'm!

  • Stekeltje
  • Registratie: November 2005
  • Laatst online: 18-09 15:02

Stekeltje

Nothing to see here move along

Topicstarter
Joolee schreef op vrijdag 24 februari 2012 @ 10:27:
Installeer eens Firebug of andere debug software en voer dan uit: console.debug(document);
Dan kun je zelf bladeren naar document.forms[... enz. en zien of er wel bestaat wat je probeert te benaderen.
Thanks, ik zocht nog naar een debugger!
RM-rf schreef op vrijdag 24 februari 2012 @ 10:28:
[...]


waneer roep je die functie calc() aan... als die ook in de header aangeroepen wordt, bestaat dat formulier nog niet, dat word pas gerenderd als de hele html gerendert is...
dus bv op een button als onclick event zou je functie wél moeten werken...

als het dat nog steeds niet doet, moet je debuggen door het object terug af te lopen... dus eerst controleren of je functie wél dat form zelf vind dmv
JavaScript:
1
alert("Hoi het javascript werkt? " + document.forms['inputBox']);


die zou daar [Form Element] moeten teruggeven, als daar al undefined staat betekent dat dat het hele formulier niet gevonden wordt, mogelijk doordat die Name niet uniek is, er meerdere formuleiren met dezelfd naam op die pagina staan.
De functie calc() wordt op de volgende manier aangeroepen:
HTML:
1
<input type="button" name="button" value="Test" onClick="calc()" />


Ik heb de code aangepast naar wat je zei en ik krijg nu het volgende: "Hoi het javascript werkt? [object HTMLFormElement]"

Acties:
  • 0 Henk 'm!

  • Stekeltje
  • Registratie: November 2005
  • Laatst online: 18-09 15:02

Stekeltje

Nothing to see here move along

Topicstarter
Heb het gevonden door de debugger! Het zat hem erin dat het element countLights niet uniek was! Thanks iedereen voor het meedenken :)
Pagina: 1