Jooakim Skrevet 29. april 2009 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.
cbastus Skrevet 30. april 2009 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
Jooakim Skrevet 30. april 2009 Forfatter 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!
cbastus Skrevet 30. april 2009 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
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å