Ik vind dat GMail een hele prettige interface heeft. Vooral de "actions" dropdown vind ik handig. In 1 dropdown staan opties om labels toe te kennen, emails te deleten, etc. Ik probeer nu zoiets na te maken voor mijn cms, pseuso:
met bijvoorbeeld de volgende html. Zoals je ziet wil ik een andere soort actie bij elke optgroup.
Als iemand dus op option "1" klikt, moet ik in de switch statement op regel 4 uitkomen en als iemand optie 2 selecteert, op regel 10. Weet iemand hoe ik van een geselecteerde optie kan zien tot welke optgroup deze behoort? En als dat niet mogelijk is, hoe zou ik dit dan kunnen oplossen?
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
| function takeAction(optionValue) { switch (optionValue) { case 'optgroup select': selectCheckboxes(optionValue); break; case 'optgroup add': document.location = 'add?type=' + optionValue; break; case 'optgroup other': form.elements['edit['+ optionValue +']'].value = '1'; form.submit(); } } |
met bijvoorbeeld de volgende html. Zoals je ziet wil ik een andere soort actie bij elke optgroup.
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| <label for="type">Action:</label> <select onchange="takeAction(this)"> <option value="ignore">choose...</option> <optgroup label="select"> <option value="none">none</option> <option value="article">article</option> <option value="product">product</option> <!-- 1 --> <option value="sidecontent">sidecontent</option> <option value="promote">promoted</option> </optgroup> <optgroup label="add"> <option value="article">article</option> <option value="product">product</option> <option value="sidecontent">sidecontent</option> </optgroup> <optgroup label="other"> <option value="promote">promote</option> <!-- 2 --> <option value="sticky">make sticky</option> <option value="delete">delete</option> </optgroup> </select> |
Als iemand dus op option "1" klikt, moet ik in de switch statement op regel 4 uitkomen en als iemand optie 2 selecteert, op regel 10. Weet iemand hoe ik van een geselecteerde optie kan zien tot welke optgroup deze behoort? En als dat niet mogelijk is, hoe zou ik dit dan kunnen oplossen?
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."