Jooakim Skrevet 29. april 2009 Del Skrevet 29. april 2009 Hei, jeg er på jakt etter et javscript som kan gjøre alle checkboxene til checked. I tillegg til å flytte verdien fra bALLv til b1v, b2v, b3v osv (gjerne alle som heter noe med b<tall>v). Dette skal gjøres når en trykker på oppdater-linken. <input type="checkbox" name="bALL" /> <input type="text" name="bALLv" value="" /> <a href="javscript: do('update');">Oppdater</a><br /> 1: <input type="checkbox" name="b1" /> <input type="text" name="b1v" value="abc" /><br /> 2: <input type="checkbox" name="b2" /> <input type="text" name="b2v" value="abc" /><br /> 3: <input type="checkbox" name="b3" /> <input type="text" name="b3v" value="abc" /> Takk for all hjelp. Lenke til kommentar
cbastus Skrevet 30. april 2009 Del Skrevet 30. april 2009 (endret) Gitt at du alltid legger til input med text og en checkbox etter formelen over: <form action=""> <input type="checkbox" name="bALL" /> <input type="text" name="bALLv" value="" /> <a onClick="updateFrom(this.parentNode)" href="#">Oppdater</a><br /> 1: <input type="checkbox" name="b1" /> <input type="text" name="b1v" value="abc" /><br /> 2: <input type="checkbox" name="b2" /> <input type="text" name="b2v" value="abc" /><br /> 3: <input type="checkbox" name="b3" /> <input type="text" name="b3v" value="abc" /> </form> function updateFrom(e){ var inputs = e.getElementsByTagName('input'); var chckMaster = inputs[0].checked; var txtMaster = inputs[1].value; //tellervariabler deklareres utenfor løkke for å spare prosessorkraft om inputs-arrayen skulle bli enorm. var y = inputs.length; var i = 0; for(i; i<y; i++){ //If setningen vil oscillere mellom par- og oddetall i inputs arrayen for å oppdatere elementene etter sin plass. Dette fordrer at strukturen er identisk til den over men med eventuelt flere forekomster av bN og bNv. if(i>1 && i%2-1){ //2,4,6 ... 2n inputs[i].checked=chckMaster; } else if (i>1 && i%2) { //3,5,7 ... 2n+1 inputs[i].value=txtMaster; } } } Merk at funksjonen tar utgangspunkt i this.parentNode som blir <form>-elementet. Endret 30. april 2009 av cbastus Lenke til kommentar
Jooakim Skrevet 30. april 2009 Forfatter Del Skrevet 30. april 2009 Hmm, jeg har en del andre inputs, så om du hadde orket - kunne du ha gjort slik at den kun endrer verdien for inputs med name="b<int>v"? Jeg har ingen flere checkboxer i koden, så den kan godt sette alle checkboxene i koden som checked. Takk for hjelpen! Lenke til kommentar
cbastus Skrevet 30. april 2009 Del Skrevet 30. april 2009 (endret) Antar et Regular Expression (RegExp) er beste løsning: var exp = new RegExp("^b\d+v$ "); "finne alle input" for("alle inputs"){ if(inputs[i].type = 'txt' && inputs[i].name.test(exp)){ inputs[i].value = txtMaster; }else if(input[i].type = 'checkbox'){ inputs[i].checked = chckMaster; } } RegExp referanse Endret 30. april 2009 av cbastus Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå