Toon posts:

[JS] Select onChange()

Pagina: 1
Acties:
  • 4.245 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hallo mensen,

Ik heb deze select met onChange een javascript functie. Die functie doet er nu niet toe. de parameter wel.

Dit is nu namelijk this.selectedIndex.
Die geeft bij de eerste: 0, tweede: 1 enz.

Maar ik wil graag dat hij de waarden neemt uit de <option value="">
Heeft iemand enig idee hoe ik dat kan bereiken?
(ik dacht aan iets van this.selectedValue maar dat werkt niet).

HTML:
1
2
3
4
5
<select name="category" onChange="processcat(this.selectedIndex)" >
         <option value="1">cat 1</option>
         <option value="2">cat 2</option>
          <option value="3">cat 3</option>
 </select>

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
JavaScript:
1
onchange="processcat ( this.value )"

March of the Eagles


Verwijderd

Verwijderd schreef op zondag 17 december 2006 @ 17:08:
Hallo mensen,

Ik heb deze select met onChange een javascript functie. Die functie doet er nu niet toe. de parameter wel.

Dit is nu namelijk this.selectedIndex.
Die geeft bij de eerste: 0, tweede: 1 enz.

Maar ik wil graag dat hij de waarden neemt uit de <option value="">
Heeft iemand enig idee hoe ik dat kan bereiken?
(ik dacht aan iets van this.selectedValue maar dat werkt niet).

code:
1
2
3
4
5
<select name="category" onChange="processcat(this.selectedIndex)" >
         <option value="1">cat 1</option>
         <option value="2">cat 2</option>
          <option value="3">cat 3</option>
 </select>
Was het niet zoiets als:
code:
1
document.(hier je form naam).category[this.selectedIndex].value


of korter:
code:
1
this.value


offtopic:
Hacku was me voor./

[ Voor 4% gewijzigd door Verwijderd op 17-12-2006 17:13 ]


Verwijderd

Topicstarter
Dát was het! Bedankt!

  • gvanh
  • Registratie: April 2003
  • Laatst online: 02-12-2023

gvanh

Webdeveloper

Even een kleine aanvullende vraag hierop ... if possible?

De onchange handler wordt bij form elementen pas aangeroepen wanneer het gewijzigde element de focus verliest. Bij <select> elementen vind ik het daarentegen wel handig als direct bij het aanklikken van de nieuwe waarde de onchange wordt aangeroepen. Is er een handige manier om dat voor elkaar te krijgen, zonder dat je direct de werking van de selectbox danig verstoort?

  • Crayne
  • Registratie: Januari 2002
  • Laatst online: 17-03 13:41

Crayne

Have face, will travel

gvanh schreef op maandag 18 december 2006 @ 13:17:
De onchange handler wordt bij form elementen pas aangeroepen wanneer het gewijzigde element de focus verliest. Bij <select> elementen vind ik het daarentegen wel handig als direct bij het aanklikken van de nieuwe waarde de onchange wordt aangeroepen. Is er een handige manier om dat voor elkaar te krijgen, zonder dat je direct de werking van de selectbox danig verstoort?
Ik weet niet hoe je daar bij komt, maar je kunt perfect onChange gebruiken om bij het selecteren van een keuze JS uit te laten voeren - zonder dat de selectbox daarvoor zijn focus hoeft te verliezen.

Edit:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
function changeSelect() {

    var selectToChange = document.getElementById("select2");

    selectToChange.style.backgroundColor = "#ffffff";
    selectToChange.disabled = false;

    while(selectToChange.hasChildNodes()) { 

        selectToChange.removeChild(selectToChange.firstChild); 

    }
        
    var newOption = document.createElement("option");
    var newOptionText = document.createTextNode("Kies een optie");
            
    newOption.appendChild(newOptionText);
        
    newOption.setAttribute("value", "");
                
    selectToChange.appendChild(newOption);
        
    choicesArray = new Array("Option 1", "Option 2", "Option 3", "Option 4", "Option 5");

    for (i = 0; i < 5; i++) {
            
        var newOption = document.createElement("option");
        var newOptionText = document.createTextNode(choicesArray[i]);
                
        newOption.appendChild(newOptionText);
                
        selectToChange.appendChild(newOption);
                
    }
            
    return null;

}


HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<form name="test" action="#" method="get">

<table cellpadding="3" cellspacing="2" border="0">

<tr valign=top>
    <td align="right" valign=top>Select 1</td>
    <td>
        <select name="select1" id="select1" size="1" onChange="changeSelect();">
            <option value="">Kies een optie</option>
            <option>Kies deze</option>
            <option>Of deze!</option>
            <option>Deze misschien?</option>
        </select>
    </td>
</tr>

<tr valign=top>
    <td align="right" valign=top>Select 2</td>
    <td>
        <select name="select2" id="select2" size="1" disabled="true" style="background-color: #cccccc;">
            <option value="">DISABLED</option>
        </select>
    </td>
</tr>

</table>

</form>

[ Voor 60% gewijzigd door Crayne op 19-12-2006 12:16 ]

Mijn Library Thing catalogus


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Hoe bedoel je dat precies? Aangezien browsers wel degelijk het onchange event afvuren na het selecteren van je optie :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • gvanh
  • Registratie: April 2003
  • Laatst online: 02-12-2023

gvanh

Webdeveloper

Oeps ... ja ... mijn fout.

Verwijderd

code:
1
onchange="window.open(this.options[this.selectedIndex].value,\'_blank\')">


Dit wat je bedoelt?
Pagina: 1