FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Flitig postare
|
Kod:
var a = 0; for(i = 1; i < parseInt(document.getElementById('antal').value)+1; i++){ a += parseInt(document.getElementById('p' + i).value); } document.write('<strong>Total:</strong> ' + a + ' kr <br />'); parseInt(document.getElementById('antal').value)+1 //hämta antalet textfält Jag testade att loopa mig genom alla textfälten, men när man kommer till sista så vill det sig inte och skriptet dör helt. Kod:
var i = 1; var a = 0; while(parseInt(document.getElementById('p' + i).value) != null){ a += parseInt(document.getElementById('p' + i).value); i++; } |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Supermoderator
|
du kanske skulle testa att document.getElementById('p'+i) inte är null innan du börjar använda det värdet till andra metoder?
__________________
Jonny Zetterström se.linkedin.com/in/jonnyz | bjz.se | sajthotellet.com | kalsongkungen.se | zretail.se | zetterstromnetworks.se | webbhotellsguide.se | ekonominyheter24.se | nyamobiltelefoner.se | gapskratt.se | antivirusguiden.se | jonny.nu |
||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Mycket flitig postare
|
Jag vet inte riktigt vad du menar med textfält men kanske funktionen document.getElementsByNames() eller någon av de andra dom-funktionerna som man kan använda för att iterera genom dokumentstrukturen?
Det bästa är nog om du försöker lära dig mer om html-sidor som DOM-objekt och funktionerna som finns för detta i javascript. |
|||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Medlem
|
använd document.getElementsByTagName('input') i kombination med en if-sats för att se så det är ett textfält så borde du kunna få reda på antalet text-fält på sidan.
|
||
![]() |
![]() |
![]() |
#5 | |||
|
||||
Mycket flitig postare
|
Om det är input-elements värden du är ute efter så kan du också loopa igenom forms[x].elements[x] och se efter att forms[x].elements[i].type=='text' och då hämta värdena med forms[x].elements[i].value (forms[x].elements[x] har längden forms[x].elements[x].length).
Rättelse till mitt inlägg ovan: getElementsByNames() ska vara getElementsByName() men getElementsByTagName('input') är nog mer lämpat i det här fallet. |
|||
![]() |
![]() |
![]() |
#6 | |||
|
||||
Medlem
|
Citat:
parseInt returnerar antingen ett tal eller NaN. Alltså evaluerar parseInt(something)!=null alltid true. Om du vill kolla på en egenskap hos ett objekt som du inte vet om det finns måste du kolla om det finns först, t ex: myObj.value=="val" resulterar i error om inte myObj finns. Skriv istället myObj&&(myObj=="val"). Nedanstående snurra borde fungera: Kod:
var i = 1; var a = 0; while( e = document.getElementById('p' + i++) ) if( e.value && isFinite(e.value) ) a += parseInt(e.value); |
|||
![]() |
![]() |
Svara |
Ämnesverktyg | |
Visningsalternativ | |
|
|