Visualizzazione dei risultati da 1 a 5 su 5

Hybrid View

  1. #1
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,780
    Dovendo resettare due select (per il post avevo semplificato il problema) ho fatto così:
    Benissimo.
    Se comunque vuoi ottimizzare il sistema, ad esempio per resettare molteplici select in un colpo solo senza dover richiamare quella funzione per ciascun elemento, puoi fare una cosa del genere:

    codice:
    function resetSelect(selector,excludeme){
      var s=document.querySelectorAll(selector),i=s.length;
      while(i--) if(s[i]!==excludeme) s[i].selectedIndex = 0;
    }
    dove il primo argomento (selector) non è altro che un selettore CSS che viene passato al metodo querySelectorAll(), per cui puoi impostarlo come meglio ti pare per selezionare gli elementi da resettare, anche usando una semplice classe. In tal caso ho previsto un secondo parametro per poter escludere, dal reset, uno specifico elemento (ad esempio quello da cui è stata chiamata la funzione).

    Potresti avere una situazione del genere:
    codice:
    <select class="selectresettabile" onchange="resetSelect('.selectresettabile',this);">
      <option value="">--</option>
      <option value="">1</option>
      <option value="">2</option>
    </select>
    
    <select class="selectresettabile" onchange="resetSelect('.selectresettabile',this);">
      <option value="">--</option>
      <option value="">1</option>
      <option value="">2</option>
    </select>
    
    <select class="selectresettabile" onchange="resetSelect('.selectresettabile',this);">
      <option value="">--</option>
      <option value="">1</option>
      <option value="">2</option>
    </select>
    
    <input type="button" value="RESET ALL SELECTS" onclick="resetSelect('.selectresettabile');">
    Nota la chiamata della funzione, uguale per tutti gli elementi select:
    codice:
    resetSelect('.selectresettabile',this);
    in tal caso ho passato il selettore ".selectresettabile" per selezionare gli elementi definiti con quella classe, ma potresti benissimo definire una cosa come "#artista,#locale,#pippo" per cui saranno selezionati i tre elementi con questi id (esattamente come un selettore CSS). A questo punto, il this passato come secondo argomento andrà ad escludere quello specifico elemento da cui è chiamata la funzione.

    Giusto come esempio, sull'ultimo input button non viene passato il secondo argomento, per cui saranno resettati tutti gli elementi considerati attraverso il selettore.

    Ovviamente questa è giusto un'ottimizzazione della soluzione iniziale, ma è chiaro che puoi risolvere in svariati altri modi.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  2. #2
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Grazie!
    Potrebbe essermi utile perchè appunto ho semplificato molto il problema che ho!
    Adesso studio!

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.