[Javascript] MSIE multiple select probleem

Pagina: 1
Acties:

  • Willem2
  • Registratie: Oktober 2000
  • Laatst online: 19-08 15:22

Willem2

Ω is futile

Topicstarter
Ik probeer al een dag MSIE aan het volgende aan het verstand te peuteren:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function Submit() {
    document.getElementById('listbox1').disabled = false

    // turn the listboxes into multiple select so we can select all the values before submit
    document.getElementById('listbox1').setAttribute('multiple', true)
    document.getElementById('listbox2').setAttribute('multiple', true)

    //alert(document.getElementById('listbox1').multiple)

    // loop trough listbox1 to select all the values
    for (i = 0;i < document.getElementById('listbox1').length ; i++) {
        document.getElementById('listbox1').options[i].selected = true
    }

    // loop trough listbox2 to select all the values
    for (i = 0;i < document.getElementById('listbox2').length ; i++) {
        document.getElementById('listbox2').options[i].selected = true
    }
}


Oftewel, listboxes die normaal single select zijn, maak ik vlak voor de submit multiple select, selecteer alle waarden die erin staan en dan kan ik in PHP er lekker mee verder spelen.

Het probleem is dat bovenstaande code in Mozilla het prima doet, maar in MSIE doet hij het alleen goed als ik eerst de alert geef. Als ik de alert disable (zoals hierboven) wordt er maar 1 waarde per listbox gesubmit. Ik heb al geprobeerd een timeout in te bouwen (tellertje tot 10.000) maar daardoor wordt het wel langzamer maar blijft het probleem bestaan...
Als ik een if statement inbouw om te checken op de multiple select attribute ( dus zoiets: if (document.getElementById('listbox1').multiple == true) ) dan blijft het probleem ook bestaan.
Het lijkt wel alsof MSIE weet dat het multiple select is, maar dat vervolgens negeert.

Iemand een idee hoe dit komt en hoe ik het kan oplossen?

en nee, ik houd niet van voetbal... :)


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:21

crisp

Devver

Pixelated

gebruik een korte setTimeout waarna je een andere functie aanroept die alle opties selecteerd en het form submit; blijkbaar wil IE het element graag opnieuw renderen, en zolang hij nog bezig is met JS interpreteren doet hij dat niet.

Intentionally left blank