Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    125

    Validazione form e select dinamica

    Buongiorno,

    ho utilizzato la libreria Livevalidation per controllare ciò che l'utente inserisce in un form d'iscrizione.
    Inoltre, ho anche creato un javascript per far funzionare una select dinamica (a seconda della provincia scelta, la select comune si popola con la lista dei comuni corrispondenti); le due cose insieme cozzano.
    Se prima di compilare il form premo il pulsante Iscriviti, si evidenziano tutti i dati che obbligatoriamente vanno inseriti, tra cui anche il comune. Se però compilo tutto e non scelgo il comune, comunque vado avanti e viene scritto un record nel DB, chiaramente senza il comune d'appartenenza.
    Come posso fare per ovviare a quest'inconveniente e far funzionare tutte e due contemporaneamente?

    A seguire Livevalidation, controllo sul comune
    codice:
      <div id="campo_comune">   
        <select name="comune" id="comune" class="dim_campo_comune">     
          <option value="seleziona">Comune</option>   
        </select> 
    </div> 
    <script type="text/javascript">   
      var controllo_comune = new LiveValidation('comune');      controllo_comune.add(Validate.Exclusion, { within: ['seleziona'], failureMessage: "Scegli un comune"}); 
    </script>
    A seguire select dinamica
    codice:
      function set_provincia() {   
        var select_provincia = document.form_iscrizione.provincia;   
        var select_comune = document.form_iscrizione.comune; 	  
        var selected_provincia = select_provincia.options[select_provincia.selectedIndex].value;   select_comune.options.length=0;     
      if (selected_provincia == "Agrigento") {for(var i=0; i<comuni_agrigento.length; i++) {select_comune.options[select_comune.options.length] = new Option(comuni_agrigento[i]);}} }
    Grazie a tutti.
    Saluti,
    Marco

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Metti il link alla pagina online pubblica
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    125
    Buongiorno Andrea,

    a seguire il link da te richiesto:

    http://www.4company.it/immagineprofe...iscrizione.php

    Saluti,
    Marco

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Inizia col verificare quest'errore
    Dettagli errore pagina Web

    Agente utente: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET CLR 1.1.4322; .NET4.0C; .NET4.0E; InfoPath.3)
    Timestamp: Fri, 19 Apr 2013 08:30:10 UTC


    Messaggio: Previsto oggetto
    Linea: 516
    Carattere: 1
    Codice: 0
    URI: http://www.4company.it/immagineprofe...iscrizione.php
    rilevato con IE8
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    125
    Ecco cosa c'è dalla riga 516

    <script type="text/javascript">
    var controllo_ripeti_password = new LiveValidation('ripeti_password');
    controllo_ripeti_password.add( Validate.Presence);
    controllo_ripeti_password.add( Validate.Confirmation, { match: 'password', failureMessage:"Ripeti la password" } );
    </script>

    E' il controllo sul campo dove chiedo nuovamente all'utente d'inserire la password.
    Ad occhio non ci vedo nulla di strano, anche perchè da front-end funziona.
    Ho fatto una ricerca su Internet dell'errore da te segnalato e sembra essere un problema di visualizzazione su alcuni browser; io per esempio, su IE 9, non lo ricevo.

    Potresti darmi qualche altra indicazione o qualora pensassi fosse quello già segnalato il problema, indicarmi meglio in che direzione cercare?

    Grazie,
    Marco

  6. #6
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    il problema che hai segnalato ad inizio post è dovuto al fatto che il comune passa la validazione.

    nel tuo codice hai:

    codice:
    var controllo_comune = new LiveValidation('comune');
    		  controllo_comune.add(Validate.Exclusion, { within: ['seleziona'], failureMessage: "Scegli un comune"});
    dovresti cambiare 'seleziona' con 'Comune' (e correggere anche l'Exclusion string della provincia).

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    125
    Buongiorno,

    ho effettuato la modifica da te suggerita, ma il risultato non è purtropp cambiato.
    Come per tutti gli altri campi, anche per il comune appare l'obbligo d'inserimento. Ma se l'utente clicca sul pulsante Iscriviti, anche senza averlo inserito, comunque si registra.
    A seguire la modifica fatta, seguendo le tue istruzioni:

    codice:
      <div id="campo_comune">        
        <select name="comune" id="comune" class="dim_campo_comune">            
          <option value="comune">Comune</option>         
        </select>  
      </div>  
      <script type="text/javascript">     
        var controllo_comune = new LiveValidation('comune');        controllo_comune.add(Validate.Exclusion, { within: ['comune'], failureMessage: "Scegli un comune"});  
      </script>
    La stessa cosa è stata fatta anche per la provincia, ma nulla.
    Sto sbagliando qualcosa io, rispetto alla modifica che mi avevi detto di provare?

    Grazie mille.
    Saluti,
    Marco

  8. #8
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Non conosco LiveValidation e non so come opera ritengo da una verifica veloce che controlli il value della option selezionata tu di default nella select comune ai value:
    codice:
    <select id="comune" class="dim_campo_comune" name="comune">
    <option value="seleziona">Comune</option><-- la option ha valore = seleziona
    </select>
    una volta selezionata la provincia le option diventano senza value hanno solo il text
    codice:
    <select id="comune" class="dim_campo_comune" name="comune">
    <option>Comune</option>
    <option>Anzola dell'Emilia</option>
    <option>Argelato</option>
    <option>Baricella</option>
    <option>Bazzano</option>
    <option>Bentivoglio</option>
    <option>Bologna</option>
    ....
    </select>
    Ritengo che il problema sia qui devi generare le option comune complete di value.


    P.S. Per popolare i comuni appoggiati ad un db vedi se questa discussione può aiutarti
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  9. #9
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    te lo dico perchè anche se nel tuo html (o php) dai il value 'seleziona' alla prima option della select, quando vai a popolare attraverso ajax quest'ultima con i comuni, quella proprietà sparisce e diventa

    <option>Comune</option>

    senza il value.

    La funzione exclusion utilizza la funzione inclusion che controlla tra le impostazioni se deve fare un controllo case sensitive o insensitive. Di default è case sensitive perciò:

    Hai provato 'Comune' con la C Maiuscola?

  10. #10
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    ho provato io per te con firebug e non ci sono altri intoppi se non quello di dare la stringa case sensitive.

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.