Visualizzazione dei risultati da 1 a 5 su 5

Discussione: confronto select

  1. #1

    confronto select

    Ciao a tutti ho un problemino che non riesco a risolvere.. non conoscendo bene javascript (o almeno credo che occorra proprio lui).

    nella mia pagina ho due campi select di immissione orario uno del tipo orario "inizio" e uno "fine" ora vorrei che ci sia un controllo, che mi avverta se l'orario di inizio è maggiore di quello di fine.
    Es.
    ora inizio 10:00
    Ora fine 08:00

    Grazie!!

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    se le due select sono uguali ti basterà confrontare i selectedIndex
    codice:
    <script type="text/javascript">
    function compara(f){
      if(f.DA.selectedIndex>=f.A.selectedIndex){
        alert('l orario di inizio non può essere superiore o uguale a quello di fine');
        return false;
      }
    }
    </script>
    <form onsubmit="return compara(this)">
    <select name="DA">
    <option>08:00</option>
    <option>09:00</option>
    <option>10:00</option>
    <option>11:00</option>
    <option>12:00</option>
    <option>13:00</option>
    <option>...etc...</option>
    </select>
    <select name="A">
    <option>08:00</option>
    <option>09:00</option>
    <option>10:00</option>
    <option>11:00</option>
    <option>12:00</option>
    <option>13:00</option>
    <option>...etc...</option>
    </select>
    <input type="submit" value="invia" />
    </form>
    ciao

  3. #3
    Intanto grazie!!! ho visto come funziona, ma è possibile che il confronto venga fatto con il cambiamento della seconda select "a" invece che con un pulsante, dato che ho già un altro pulsante nella pagina e corro il rischio di incasinare le cose, visto che la pagina è in php e va a inserire dati in una tabella sql.

    Grazie ancora
    Originariamente inviato da Xinod
    se le due select sono uguali ti basterà confrontare i selectedIndex
    codice:
    <script type="text/javascript">
    function compara(f){
      if(f.DA.selectedIndex>=f.A.selectedIndex){
        alert('l orario di inizio non può essere superiore o uguale a quello di fine');
        return false;
      }
    }
    </script>
    <form onsubmit="return compara(this)">
    <select name="DA">
    <option>08:00</option>
    <option>09:00</option>
    <option>10:00</option>
    <option>11:00</option>
    <option>12:00</option>
    <option>13:00</option>
    <option>...etc...</option>
    </select>
    <select name="A">
    <option>08:00</option>
    <option>09:00</option>
    <option>10:00</option>
    <option>11:00</option>
    <option>12:00</option>
    <option>13:00</option>
    <option>...etc...</option>
    </select>
    <input type="submit" value="invia" />
    </form>
    ciao

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    certamente sì, capisco anche le tue perplessità nel far convivere + di un controllo onsubmit ma ti assicuro che sono ingiustificate (basta far ritornare false per interrompere qualsiasi ulteriore procedura di controllo)
    codice:
    ...
    <select name="A" onchange="if(this.form.DA.selectedIndex>=this.selectedIndex){alert('l orario di inizio non può essere superiore o uguale a quello di fine');this.selectedIndex=this.form.DA.selectedIndex+1;}">
    <option>08:00</option>
    <option>09:00</option>
    <option>10:00</option>
    <option>11:00</option>
    <option>12:00</option>
    <option>13:00</option>
    <option>...etc...</option>
    </select>
    se trovi + comodo tenere il tutto in una funzione:
    codice:
    <script type="text/javascript">
    function compara(f){
      if(f.DA.selectedIndex>=f.A.selectedIndex){
        alert('l orario di inizio non può essere superiore o uguale a quello di fine');
        f.A.selectedIndex=f.DA.selectedIndex+1;
      }
    }
    </script>
    ...
    <select name="A" onchange="compara(this.form)">
    ...
    ciao

  5. #5
    Ti ringrazio sei stato davvero preciso e veloce!!!

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.