Ciao a tutti, sono alle prese con un problemino che non riesco proprio a risolvere, spero in un vostro aiuto.
Con questo script effettuo un controllo su una serie di select con le stesse identiche opzioni per impedire ai miei utenti di inviare valori duplicati:
e questo è il form:codice:function checkDropdowns() { var iDropdowns = 5; var sValue; var sValue2; for(var i = 1; i <= iDropdowns; ++i) { sValue = document.getElementById('drop' + i).value; for(var j = 1; j <= iDropdowns; ++j) { sValue2 = document.getElementById('drop' + j).value; if ( i != j && sValue == sValue2 ) { alert('Hai selezionato due o più giocatori uguali!'); return false; } } } return true; }
I miei utenti non sono obbligati ad effettuare tutte e 5 le selezioni e questo controllo funziona solo se in tutte le select viene selezionata un opzione.codice:<form action="<?php echo $editFormAction; ?>" onsubmit="return(validate());" method="post" name="form1"> <table width="100%" border="0"> <tr> <td class="table1">Offerte</td> </tr> <tr> <td> <select name="rc_player1" id="drop1"> <option value="%">Seleziona</option> <?php do { ?> <option value="<?php echo $row_comboplayer['id']?>"><?php echo $row_comboplayer['playerName']?> [<?php echo $row_comboplayer['playerOverall']; ?>] [<?php echo $row_comboplayer['playerLevel']; ?>]</option> <?php } while ($row_comboplayer = mysql_fetch_assoc($comboplayer)); $rows = mysql_num_rows($comboplayer); if($rows > 0) { mysql_data_seek($comboplayer, 0); $row_comboplayer = mysql_fetch_assoc($comboplayer); } ?> </select> </td> </tr> <tr> <td> <select name="rc_player2" id="drop2"> <option value="%">Seleziona</option> <?php do { ?> <option value="<?php echo $row_comboplayer['id']?>"><?php echo $row_comboplayer['playerName']?> [<?php echo $row_comboplayer['playerOverall']; ?>] [<?php echo $row_comboplayer['playerLevel']; ?>]</option> <?php } while ($row_comboplayer = mysql_fetch_assoc($comboplayer)); $rows = mysql_num_rows($comboplayer); if($rows > 0) { mysql_data_seek($comboplayer, 0); $row_comboplayer = mysql_fetch_assoc($comboplayer); } ?> </select> </td> </tr> <tr> <td> <select name="rc_player3" id="drop3"> <option value="%">Seleziona</option> <?php do { ?> <option value="<?php echo $row_comboplayer['id']?>"><?php echo $row_comboplayer['playerName']?> [<?php echo $row_comboplayer['playerOverall']; ?>] [<?php echo $row_comboplayer['playerLevel']; ?>]</option> <?php } while ($row_comboplayer = mysql_fetch_assoc($comboplayer)); $rows = mysql_num_rows($comboplayer); if($rows > 0) { mysql_data_seek($comboplayer, 0); $row_comboplayer = mysql_fetch_assoc($comboplayer); } ?> </select> </td> </tr> <tr> <td> <select name="rc_player4" id="drop4"> <option value="%">Seleziona</option> <?php do { ?> <option value="<?php echo $row_comboplayer['id']?>"><?php echo $row_comboplayer['playerName']?> [<?php echo $row_comboplayer['playerOverall']; ?>] [<?php echo $row_comboplayer['playerLevel']; ?>]</option> <?php } while ($row_comboplayer = mysql_fetch_assoc($comboplayer)); $rows = mysql_num_rows($comboplayer); if($rows > 0) { mysql_data_seek($comboplayer, 0); $row_comboplayer = mysql_fetch_assoc($comboplayer); } ?> </select> </td> </tr> <tr> <td> <select name="rc_player5" id="drop5"> <option value="%">Seleziona</option> <?php do { ?> <option value="<?php echo $row_comboplayer['id']?>"><?php echo $row_comboplayer['playerName']?> [<?php echo $row_comboplayer['playerOverall']; ?>] [<?php echo $row_comboplayer['playerLevel']; ?>]</option> <?php } while ($row_comboplayer = mysql_fetch_assoc($comboplayer)); $rows = mysql_num_rows($comboplayer); if($rows > 0) { mysql_data_seek($comboplayer, 0); $row_comboplayer = mysql_fetch_assoc($comboplayer); } ?> </select> </td> </tr> <tr> <td> <input class="submitbutton" name="mysubmit" onclick="return checkDropdowns();" type="submit" value="Aggiungi Offerta" /></td> </tr> </table> </form>
Come posso modificare lo script ed evitare che il valore null (che mel mio caso è "%") venga considerato?

Rispondi quotando
