Io più che con uno switch, farei così:
http://jsfiddle.net/Nicolo99/ptQV4/e...esult,html,js/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 }); }); });

Rispondi quotando