28. august 2004 - 15:19Der er
5 kommentarer og 1 løsning
reset af select liste
Hej jeg har et problem med at nulstille en select liste. Når jeg har foretaget et valg i listen kaldes funktionen og der skal udføres et eller andet afhængig af valg (virker), men før funktionen afsluttes vil jeg gerne have at select listen resettes, altså sættes til "Select". Dette virker når der vælges "Enabled"/"Disabled"/"Auto Disabled" men ikke når der vælges "All"/"Invert"!
På forhånd tak, Sebastian
Udsnit af kode:
<SCRIPT LANGUAGE="JavaScript"> <!-- BEGIN //***** Mass Select *****// function select(action) { if (action == "all") { for (var i=0; i <= document.form1.check_id.length; i++) { document.form1.check_id[i].checked = true; } } else if (action == "enabled") {
} else if (action == "disabled") {
} else if (action == "auto_disabled") {
} else if (action == "invert") { for (var i=0; i <= document.form1.check_id.length; i++) { if (document.form1.check_id[i].checked == true) { document.form1.check_id[i].checked = false; } else { document.form1.check_id[i].checked = true; } } }
document.form1.select_list.selectedIndex = "default"; // Dette burde resette select listen (tror jeg nok) men det virker ikke } // END --> </SCRIPT>
<SCRIPT LANGUAGE="JavaScript"> <!-- BEGIN //***** Mass Select *****// function select(sel){ action = sel.value; f = sel.form; if (action == "all"){ for (var i=0; i <= document.form1.check_id.length; i++){ f.check_id[i].checked = true; } }else if (action == "enabled"){
}else if (action == "disabled"){
}else if (action == "auto_disabled"){
}else if (action == "invert"){ for (var i=0; i <= f.check_id.length; i++){ if (f.check_id[i].checked == true){ f.check_id[i].checked = false; }else{ f.check_id[i].checked = true; } } }
Det ændre ikke noget, får desværre stadig samme fejl.
Det lader til at der sker et eller andet når der en i if sætningerne ændres på 'check_id', fx via: f.check_id[i].checked = true;
Jeg prøvede lige at indsætte ovenstående linie i 'if (action == "enabled")' og så opstår fejlen også ved Enabled! Altså så virker det når der vælges "Disabled"/"Auto Disabled" men ikke når der vælges "Enabled"/"All"/"Invert"!
Jeg kan evt. smide hele koden i tråden hvis du tror det vil hjælpe.
Du er stødt ind i en af javascripts finurligheder, nemlig at alle arrays er 0-baserede, hvorfor længden af et array vil være en større end det største index !-)
<SCRIPT LANGUAGE="JavaScript"> <!-- BEGIN //***** Mass Select *****// function select(sel){ action = sel.value; f = sel.form; if (action == "all"){ for (var i=0; i < f.check_id.length; i++){ f.check_id[i].checked = true; } }else if (action == "enabled"){
}else if (action == "disabled"){
}else if (action == "auto_disabled"){
}else if (action == "invert"){ for (var i=0; i < f.check_id.length; i++){ f.check_id[i].checked = !f.check_id[i].checked; } } }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.