Ciao, non so se il titolo è chiaro, comunque il mio problema è questo:
Ho un form che mi deve lanciare una statistica, l'utente può scegliere tra lanciare una statistica trimestrale o una mensile.
Il form è fatto da:
una select che identifica gli anni, predefinito è l'anno corrente, quindi non la verifico.
Due select: una che ha per opzioni i tre trimestri, e l'altra con i mesi.
Queste ultime due select sono mutuamente selezionabili, cioè o scegli una o scegli l'altra.
Sto validando il form con il plugin di jquery validate(), ma non riesco a gestire la validazione; in pratica seguendo alcuni esempi trovati anche in questo forum, non sono venuto a capo di nulla.
Un poco di codice, tanto per capirci
HTML - Le tre select
Il poco di Javascript creato fino a qui.
Ho usato l'esempio riportato da questo forum, vedi link sopra, ma non funziona in nessun caso.
In pratica, ora come ora se premo il tasto di invio, il form viene sempre e comunque inviato, mentre se tutti e due i campi riportano il valore "default" non deve essere inviato.
Ho un form che mi deve lanciare una statistica, l'utente può scegliere tra lanciare una statistica trimestrale o una mensile.
Il form è fatto da:
una select che identifica gli anni, predefinito è l'anno corrente, quindi non la verifico.
Due select: una che ha per opzioni i tre trimestri, e l'altra con i mesi.
Queste ultime due select sono mutuamente selezionabili, cioè o scegli una o scegli l'altra.
Sto validando il form con il plugin di jquery validate(), ma non riesco a gestire la validazione; in pratica seguendo alcuni esempi trovati anche in questo forum, non sono venuto a capo di nulla.
Un poco di codice, tanto per capirci
HTML - Le tre select
HTML:
<!-- Anno -->
<div class="col-sm-4">
<select class="form-control" name="annualita">
<option value="2019">2019</option>
</select>
</div>
<!-- Trimestre -->
<div class="col-sm-4">
<select class="form-control" id="trimestre" name="trimestre">
<option value="default">Trimestri...</option>
<option value="1">Primo trimestre</option>
<option value="2">Secondo trimestre</option>
<option value="3">Terzo trimestre</option>
</select>
</div>
<!-- Mensile -->
<div class="col-sm-4">
<select class="form-control" id="mensilita" name="mensilita">
<option value="default">Mensilità...</option>
<option value="1">1. gennaio</option>
<option value="2">2. febbraio</option>
<option value="3">3. marzo</option>
<option value="4">4. aprile</option>
<option value="5">5. maggio</option>
<option value="6">6. giugno</option>
<option value="7">7. luglio</option>
<option value="8">8. agosto</option>
<option value="9">9. settembre</option>
<option value="10">10. ottobre</option>
<option value="11">11. novembre</option>
<option value="12">12. dicembre</option>
</select>
</div>
Codice:
<script type="text/javascript" src="js/jquery.validate.min.js"></script>
<script type="text/javascript">
"use strict";
$(function () {
$('#form-stat').validate({
rules: {
trimestre: {
required: function() {
return $("#mensilita").val() === '';
}
},
mensilita: {
required: function() {
return $("#trimestre").val() === '';
}
}
},
messages: {
trimestre: {
required: 'Devi scegliere almeno un periodo.'
},
mensilita: {
required: 'Devi scegliere almeno un periodo.'
}
}
});
});
</script>
In pratica, ora come ora se premo il tasto di invio, il form viene sempre e comunque inviato, mentre se tutti e due i campi riportano il valore "default" non deve essere inviato.