Io più che con uno switch, farei così:
codice:
/* Un piccolo oggetto con le "impostazioni":
Se un giorno dovessi aggiungere colori o materiali puoi modificare solo questo
(Io solitamente lo salvo in un file diverso così da averlo sotto mano per ogni modifica non strettamente legata al codice ma ai contenuti)
So che forse non è il massimo fare così, ma un'applicazione più facilmente mantenibile è sempre meglio :D
*/
coloriSelect = {
colori : { // "nomeColore": "codiceColore"
ecru : "#abcdef", // Mai sentito nominare :D
beige : "#eddd97",
bianco : "#ffffff",
rosso : "#ff0000" // Puoi aggiungere tutti i colori che vuoi
},
materiali : {
acrilico : [
"ecru"
],
pvc : [
"beige",
"bianco"
],
tempotest : [
"beige",
"bianco",
"rosso"
]
}
}
jQuery(document).ready(function( $ ) {
$("#pa_materiale-tessuto").on("change", function () {
var select = $("#select_colori"); // La select dei colori
var materiale = $(this).val(); // Se ti riferisci allo stesso elemento è meglio usare this: 1) è più performante (jQuery non deve cercarlo di nuovo) 2) Se un giorno cambiasse l'id della select dovresti cambiare solo quello che lancia la funzione senza preoccuparti di tutti gli altri
var colori = coloriSelect.materiali[materiale]; // Prendo l'elenco dei colori
select.empty(); // Svuoto la select
$.each(colori, function () { // Ciclo l'array dei colori da usare
var option = $("<option/>"); // Creo la option
option.val(coloriSelect.colori[this]); // Imposto il codice colore come value della option
option.text(this); // Scrivo il nome del colore nell'option
option.appendTo(select); // Aggiungo l'option alla select
});
});
});
http://jsfiddle.net/Nicolo99/ptQV4/e...esult,html,js/