Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    138

    Disabilitare scelta su combo box

    Salve a tutti.
    Questo codice....

    codice:
    <select id="awf_field-87278791" name="custom Data corso" tabindex="511" >
        <option class="multiChoice" value="4 Marzo Milano">4 Marzo Milano</option>
        <option class="multiChoice" value="25 Marzo Torino">25 Marzo Torino</option>
    </select>

    ...sta dietro una combo.
    Esiste un modo con javascript per disabilitare la scelta quando la data è passata.
    Nello specifico vorrei che il 5 Marzo la scelta del 4 Marzo risulti visibile ma disabilitata.
    Dimenticavo di dire che queste date vengono (e verranno in seguito) inserite a mano aggiungendo cioè ogni volta un tag option.

    Grazie per ogni tipo di suggerimento.

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Vedi se questo http://www.pusceddu.it/htmlit/varie/no_option.htm sviluppato dal mitico Br1 fa al caso tuo.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    138
    Il linea di massima sì, però devo fare un confronto con la data. Come faccio?

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Devi usare oggetto date di js al caricamento della pagina verifichi le option con le date passate e gli imposti la classe "disable" inoltre il value delle option deve avere il formato data value="25/03/2016" non quello attuale
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    codice:
    <select id="awf_field-87278791" name="custom Data corso" tabindex="511" >
         <option class="multiChoice" value="4 Marzo Milano" data-expire="2017/03/04">4 Marzo Milano</option>
         <option class="multiChoice" value="25 Marzo Torino" data-expire="2017/03/25">25 Marzo Torino</option>
         <option class="multiChoice" value="23 Novembre Roma" data-expire="2016/11/23">23 Novembre Roma</option>
    </select>
    <script type="text/javascript">
    var today=new Date();
    var options=document.getElementById('awf_field-87278791').getElementsByTagName('option');
    for(var i=0; i<options.length;i++){
        var expire=new Date(options[i].getAttribute('data-expire'));
        if(expire<today){
            options[i].setAttribute('disabled',true);
        }
    }
    </script>
    Nota che lo script è posto, non a caso, *dopo* il tag select, di modo che questo (il tag select) sia già stato caricato nella pagina al momento dell'esecuzione dello script.
    Per non sovrascrivere l'attributo "value" dei tag "option" ho usato un data-attribute che conterrà la data dell'evento nel formato anglosassone.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    138
    Grazie mille lucavizzi per l'aiuto.

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    138
    E se invece che disabilitarlo volessi rimuoverlo?

  8. #8
    Quote Originariamente inviata da alberigo Visualizza il messaggio
    E se invece che disabilitarlo volessi rimuoverlo?

    Sostituisci

    codice:
    options[i].setAttribute('disabled',true);

    con

    codice:
    options[i].parentNode.removeChild(options[i]);

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    138
    Che dire...grazie ancora una volta.

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.