[Javascript] Deselezionare checkbox

marco881

Nuovo Utente
23 Gen 2017
1
0
1
31
Salve, ho difficoltà a realizzare uno script che mi deselezioni una checkbox quando l'altra sulla stessa riga è selezionata.

parte javascript
Codice:
    <script type="text/javascript">
        function uncheck1(){
            document.getElementById("check1").checked = true;
            document.getElementById("check2").checked = false;
            document.getElementById("select").disabled = true;
        }
        function uncheck2(){
            document.getElementById("check1").checked = false;
            document.getElementById("check2").checked = true;
            document.getElementById("select").disabled = false;
        }
</script>
questa è la tabella, ho solo inserito due righe per fare un esempio, comunque il risultato finale è nell'immagine seguente
HTML:
<form name="form" action="action.php" method="post">
<table>
<tr>
<td><input type="hidden" value="Carrizo J." name="player[]"/></td>
<td><label>Carrizo J.</label></td>
<td><input id="check1" onclick="uncheck1()" type="checkbox" name="titolare[]" value="0" checked=""/></td>
<td><input id="check2" onclick="uncheck2()" type="checkbox" name="titolare[]" value="1"/></td>
<td>
<select id="select" name="ordine[]">
<option>1</option>
<option>2</option>
</select>
</td>
</tr>
<tr>
<td><input type="hidden" value="Handanovic S." name="player[]"/></td>
<td><label>Handanovic S.</label></td>
<td><input id="check1" onclick="uncheck1()" type="checkbox" name="titolare[]" value="0" checked=""/></td>
<td><input id="check2" onclick="uncheck2()" type="checkbox" name="titolare[]" value="1"/></td>
<td>
<select id="select" name="ordine[]">
<option>1</option>
<option>2</option>
</select>
</td>
</tr>
<tr>
-
-
-
-
</tr>
<tr>
-
-
-
-
</tr>
</table>
</form>
E questo è il risultato


Così com'è, ovviamente, funziona solo la prima riga, se seleziono la checkbox di destra, quella di sinistra si deseleziona e la select viene abilitata.
Mentre se seleziono quella di sinistra, la checkbox di destra si deseleziona e la select si disabilita.

C'è un modo per poter far fare le stesse cose alle altre 24 righe senza dover scrivere 2 funzioni per ognuna?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, non puoi assegnare lo stesso id a più di un elemento. Ogni id deve essere univoco. Potresti passarlo alla funzione per capire a quale riga ti stai riferendo :
HTML:
<input id="riga1_check1" onclick="uncheck1('riga1')" type="checkbox" name="titolare[]" value="0" checked=""/>
<input id="riga1_check2" onclick="uncheck2('riga1')" type="checkbox" name="titolare[]" value="1"/>
...
<select id="riga1_select" name="ordine[]">
Codice:
function uncheck1(id) {
        document.getElementById(id + "_check1").checked = true;
        document.getElementById(id + "_check2").checked = false;
        document.getElementById(id + "_select").disabled = true;
    }
    function uncheck2(id) {
        document.getElementById(id + "_check1").checked = false;
        document.getElementById(id + "_check2").checked = true;
        document.getElementById(id + "_select").disabled = false;
    }
potevi unsare il radio che prevede una sola scelta