Validazione form e select dinamica

navajo75

Utente Attivo
16 Mar 2012
103
1
18
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

HTML:
<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
 
Ciao, perchè utilizzare una libreria per conoscere quello che è stato inserito in un campo di testo?
 
Ciao, un semplice esempio
HTML:
<script>
    function controllo(form){
        if(form.nome.value == "cacca") {
            alert("non puoi scrivere cacca nel campo nome");            
        }else{
            form.submit();
        }
    }
</script>
<form onsubmit="controllo(this);return false">
    <input type="text" name="nome" />
    <input type="submit" name="invia"/>
</form>
in ogni caso è necessario un controllo lato server
 
Ciao, come dice il collega @criric c'è sempre bisogno di un uteriore controllo. "ottimo esempio" :)
Inoltre ti consiglio di rinforzare lo script con espressioni regolari " ma anche quelle non bastano..." :)
Tuttavia come ti è stato mostrato non c'è bisogno di fare ricorso ad una libreria. " magari pesante "
 

Discussioni simili