verifica form

  • Creatore Discussione Creatore Discussione Vera
  • Data di inizio Data di inizio

Vera

Utente Attivo
3 Giu 2014
76
1
8
Buongiorno,

ho creato questo form con 5 checkbox:

<form name="form" id="form" method="get" action="action">
<?php echo htmlentities('1°');?><input type="checkbox" name="anno[]" value="primo"/>
<input type='hidden' name='primo' id='primo' value = '<?php echo $primo;?>' </input>
<?php echo htmlentities('2°');?><input type="checkbox" name="anno[]" value="secondo"/>
<input type='hidden' name='secondo' id='secondo' value = '<?php echo $secondo;?>' </input>
<?php echo htmlentities('3°');?><input type="checkbox" name="anno[]" value="terzo"/>
<input type='hidden' name='terzo' id='terzo' value = '<?php echo $terzo;?>' </input>
<?php echo htmlentities('4°');?><input type="checkbox" name="anno[]" value="quarto"/>
<input type='hidden' name='quarto' id='quarto' value = '<?php echo $quarto;?>' </input>
<?php echo htmlentities('5°');?><input type="checkbox" name="anno[]" value="quinto"/>
<input type='hidden' name='quinto' id='quinto' value = '<?php echo $quinto;?>' </input>
</form>

con jquery verifico se almeno una delle 5 checkbox é stata selezionata:

if ($("#primo").is(":not(:checked)")&&
$("#secondo").is(":not(:checked)")&&
$("#terzo").is(":not(:checked)")&&
$("#quarto").is(":not(:checked)")&&
$("#quinto").is(":not(:checked)"))
{ alert('segnalo errore');}

e fin qui tutto ok.....

devo poter verificare, se selezionata più di una checkbox, la sequenza stessa di selezione.

Ad esempio, se la prima checkbox equivale a 1, la seconda equivale a 2, la terza equivale a 3, la quarta equivale a 4 e la quinta equivale a 5,
devo poter avere queste selezioni (é un esempio):
o 123
o 45
o 12345
o 345
etc.. cioé le selezioni devono essere sequenzali

ad esempio, non posso avere questi valori:

13
245
1345
etc

come posso fare con jquery?
Grazie
 
Ciao Vera

vista la data del post presumo tu abbia già risolto il problema.

Problema che in altri termini è simile al mio nel senso che il controllo è su quattro campi facoltativi ma se digitati devono essere presenti a coppie.

Facendo un parallelo col tuo esempio posso avere:
1234
12
34

Puoi dirmi se sei riuscita (scrivo al femminile dal nick se sbaglio mi scuso) con jQuery (riportando l'esempio) o hai inserito il controllo fatto in php nella pagina richiamata?

Se hai usato php non ho problemi... più che altro mi interessava sapere se era possibile con jQuery.

Grazie in anticipo per eventuali suggerimenti.
 
Ciao,

in realtà ho cambiato qualcosa nel form implementandolo cosi di seguito:

<form name="form2" id="form2" method="get" action="action">

<font color = "green">Tipo prova:</font>&nbsp&nbsp
<font color = "green">Lic.Media</font>
<input type="checkbox" name="didattica" value="L" id="checkbox"/>&nbsp&nbsp&nbsp
<font color = "green"><?php echo htmlentities('Idoneità');?></font>
<input type="checkbox" name="didattica" value="I" id="checkbox"/>&nbsp&nbsp&nbsp
<font color = "green"><?php echo htmlentities('Maturità');?></font>
<input type="checkbox" name="didattica" value="M" id="checkbox"/>&nbsp&nbsp&nbsp&nbsp&nbsp


<font color = "green">Anno prova:</font>&nbsp&nbsp
<?php echo htmlentities('1°');?><input type="checkbox" name="didattica" value="S" id="checkbox"/>

<?php echo htmlentities('2°');?><input type="checkbox" name="didattica" value="S" id="checkbox"/>

<?php echo htmlentities('3°');?><input type="checkbox" name="didattica" value="S" id="checkbox"/>

<?php echo htmlentities('4°');?><input type="checkbox" name="didattica" value="S" id="checkbox"/>

<?php echo htmlentities('5°');?><input type="checkbox" name="didattica" value="S" id="checkbox"/>&nbsp&nbsp&nbsp

</form>

la prima parte del form individua il tipo di prova: licenza media, Idoneità e Maturità. La seconda parte i relativi anni della prova.
Detto ciò se ho selezionato la checkbox relativa alla Licenza media, le altre checkbox da selezionare sono solamente quella con il 1°, 2° e 3° anno (selezionabili 1°,2°,3° oppure 2°,3° oppure solamente il 3°) escludendo quelle relative al 4° e 5°.

Nel caso che venga selezionata la checkbox relativa alla Idoneià le altre checkbox selezionabili sono solamente quelle con il 1°,2°,3°,4° anno (selezionabili 1°, 2°, 3°, 4° oppure 2°, 3°, 4° oppure 3°, 4° oppure 4°) escludendo quella relativa al 5°.

Ultimo caso é quello dove é selezionata la checkbox relativa alla Maturità. Per questa la relativa sequenza selezionabile degli anni deve essere la seguente: 1°, 2°, 3°, 4°, 5° oppure 2°, 3°, 4°, 5° oppure 3°, 4°, 5° oppure 4°, 5° oppure solo 5°

Ora detto tutto ciò dovrei controllare il form in javascript o jquery, cioé ad una scelta sbagliata nelle relative selezioni devo poter inviare un alert di avviso errore.

potresti darmi una mano?
Grazie
 
Ciao Vera

posso suggerirti un'idea, il controllo lo puoi sviluppare con il linguaggio che meglio credi...

Scrivi gli input degli anni modificando il campo value nel seguente modo:

<font color = "green">Anno prova:</font>&nbsp&nbsp
<?php echo htmlentities('1°');?><input type="checkbox" name="didattica" value="1" id="checkbox"/>

<?php echo htmlentities('2°');?><input type="checkbox" name="didattica" value="2" id="checkbox"/>

<?php echo htmlentities('3°');?><input type="checkbox" name="didattica" value="4" id="checkbox"/>

<?php echo htmlentities('4°');?><input type="checkbox" name="didattica" value="8" id="checkbox"/>

<?php echo htmlentities('5°');?><input type="checkbox" name="didattica" value="16" id="checkbox"/>&nbsp&nbsp&nbsp

calcola in una variabile Somma tutti i valori delle checkbox pervenute e nel caso di:

Licenza Media
i valori di Somma ammessi sono:

1 = 1
2 = 2
3 = 4
2-3 = 6

per valori diversi di Somma segnalare errore

Idoneità
i valori di Somma ammessi sono:

1 = 1
2 = 2
3 = 4
4 = 8
2-3-4 = 14
3-4 = 12

per valori diversi di Somma segnalare errore

e così via per la Maturità.
 
Ok seguo il tuo di suggerimento e ti faccio sapere (non in giornata).

Vera
 
Grazie 1000 ho provato il tuo di suggerimento e funziona perfettamente. Ancora grazie. Vera
 

Discussioni simili