Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606

    [jquery][option value]Cambiare il valore selezionato e modificarne la struttura in un elenco a discesa.

    Ciao e buonmattino
    Sono qui a porvi la domanda marzulliana del giorno: dunque, in una intranet aziendale sto costruendo una pagina che permette di compilare un modulo di richiesta materiale dal magazzino e fino a qui nessun problema.
    Il problema viene con la verifica e il controllo della data del modulo, ovvero, premetto che tale data è inserita tramite due elenchi a discesa, uno per il giorno ed uno per il mese, ed un campo di testo da 4 cifre per l'anno.
    Tali campi sono preselezionati con la data odierna, dato che di solito le richieste vanno fatte al magazzino in giornata, ma è possibile posticiparle a data da destinarsi.
    E qui sorge il problema!
    In pratica modificare i campi non è un problema, il problema è che quando creo il campo selcted via PHP al momento di mostrare la pagina, poi non riesco più a modificare la selezione via jquery.
    Per lo meno io non ci riesco.
    Un po' di codice:
    Creato il campo select con preselezionata la data odierna ( marzo )
    codice:
    <select id="giorno">
    <option value="1" selected>1</option>
    ....
    </select>
    poi se uno mette per esempio 31 cme giorno e nel campo a discesa dei mesi sceglie aprile, vorrei che venga deselezionata l'opzione del giorno 31 e si porti indietro di uno l'opzione in modo che mostri 30.
    Ora, deselezionare un opzione è facile: $('#giorno option[value="31"]').prop('disabled', true); il problema ritorna quando devo verificare la data:
    codice:
    switch( $('#mese').val() )
    {
      case '4': case '6': case '9': case '11':
        if ( $('#giorno').val() )
        {
           $('#giorno option[value="30"]').prop('selected', true);
        }
        $('#giorno option[value="31"]').prop('disabled', true);
      break;
    }
    Salto per semplicità ora il controllo per febbraio, dunque, il problema è che non riesco nemmeno a farlo entrare nel ciclo che controlla che non si sia già preselezionato il 31 come giorno in quei mesi di 30.
    Ne riesco a selezionare il giorno.

  2. #2
    Perché non usi un datepicker?

  3. #3
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606
    Quote Originariamente inviata da lucavizzi Visualizza il messaggio
    Perché non usi un datepicker?
    Perché non voglio

    Perché a me la via facile non piace, perché se è fattibile voglio farlo, perché se no quando imparo?
    E soprattutto perché così è più carino

  4. #4
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606
    Scoperto l'arcano maggiore
    Pare che, ma non ne sono sicuro, l'ho notato solo in via sperimentale ed empirica, che se scrivi <option value="1" selected>...</option> quel selected non si cambia.
    Così dopo prova e riprova, la via definitiva è stata quella di inserire la data odierna via javascript e non via PHP:
    codice:
    var d = new Date();
    $('#giornoRichiesta option[value="' + d.getDate() + '"]').prop('selected', true);
    $('#meseRichiesta option[value="' + (d.getMonth() + 1) + '"]').prop('selected', true);
    In questo modo funziona benissimo, riesco a selezionare e deselezionare un opzione, e persino a disabilitarla.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.