Ik heb nu in mijn cms selects van deze vorm:
Ik heb een jQuery functie geschreven die bij elke pageload wordt geladen:
Hoewel ik hier eerst tevreden mee was, wil ik er nu 2 zaken aan verbeteren:
HTML:
1
2
3
4
5
6
| <select class="goto"> <option value="admin/content">Kies...</option> <option value="admin/content/add?page">page</option> <option value="admin/content/add?story">story</option> <option value="admin/content/add?image">image</option> </select> |
Ik heb een jQuery functie geschreven die bij elke pageload wordt geladen:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
| /** * Essential tool: onselect, redirect the page to the chosen URL */ CMS.tools.selectGoto = function() { $('select.goto').change(function() { var selected = $("option:selected", this).val(); if (selected != 'ignore') { document.location = selected; } }); } |
Hoewel ik hier eerst tevreden mee was, wil ik er nu 2 zaken aan verbeteren:
- de eerste option reload naar de huidige pagina, maar ik wil dat selectGoto de eerste optie (hier: kies...) negeert. Dan hoef ik er ook geen value meer aan toe te kennen
- ik wil af van die lange URL's in elke option. Ik zit eraan te denken om een extra argument aan de select tag toe te voegen, iets als:
HTML:1 2 3 4 5 6
<select class="goto" goto="admin/content/add?"> <option>Kies...</option> <option value="page">page</option> <option value="story">story</option> <option value="image">image</option> </select>
- In dat geval kan ik ook de class "goto" verwijderen. Ik kan de selectGoto dan laten checken of er selects met het goto-attribuut zijn en dan de functie attachen...
- mag je zomaar eigen attributen verzinnen? Ik heb het wel eens gezien hier en daar, maar echt compliant code is het natuurlijk niet
- zo nee, heeft iemand een alternatief idee?
- het schrijven van bovenstaande functie is even geleden en kostte me toen al veel tijd. Kent iemand de jQuery seelctor voor het geval je een eigen attribuut verzint? $('select.goto') levert immers de selects met als class "goto" op, niet selects met attribuut "goto"...
- hoe laat ik mijn functie de eerste option (of: de options met een lege value) negeren?
[ Voor 9% gewijzigd door Verwijderd op 11-10-2009 20:46 ]