Newsgroup: it.comp.lang.javascript
Titolo: checkbox come radiobutton...

Ci sono quasi ma se "cecco" prima Sospendi e poi Cancella non si dececca
sospendi...
invece se prima "cecco" Cancella e poi Sospendi funziona...
Stň diventando matto!!!
Ditemi il perchč!
Alen
--------
<html>
<head>
<title>Documento senza titolo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript" language="Javascript">
<!--
// Per impedire la la sopensione e cancellazione di un record in simultanea
function uncheck(a)
{
    var gfC_txt1 = document.forms["Form"].elements["stop"+a];
 var gfC_txt2 = document.forms["Form"].elements["Destroy"+a];
    if (gfC_txt1.checked == true){
  if (gfC_txt2.checked == true && gfC_txt1.checked == true)
  {
        gfC_txt1.checked=true;
        gfC_txt2.checked=false;
     }
  }
 else if (gfC_txt2.checked == true){
  if (gfC_txt1.checked == true && gfC_txt2.checked == true)
  {
        gfC_txt2.checked=true;
        gfC_txt1.checked=false;
     }
  }
}
//-->
</script>
</head>
<body>
<form action="" name="Form" >
<input name="stop1" type="checkbox" value=""
onClick="uncheck(1)">Sospendi<br>
<input name="Destroy1" type="checkbox" value=""
onClick="uncheck(1)">Cancella
</form>
</body>
</html>

 Ditemi il perchè!
Perché il controllo della prima checkbox viene eseguito per primo.
Se tutte e due le checkbox sono spuntate, il controllo della prima checkbox
deseleziona la seconda; in questo modo il controllo della seconda non viene
eseguito.
Non ho capito il motivo per cui non vuoi usare i radiobutton. In ogni caso,
per far funzionare lo script dovrai passare alla funzione anche un
riferimento alla checkbox che vuoi selezionare. Ad esempio:
    <script type="text/javascript" language="Javascript">
    <!--
    function uncheck(a, n) {
        var gfC_txt1 = document.forms["Form"].elements["stop"+a];
        var gfC_txt2 = document.forms["Form"].elements["Destroy"+a];
        if (n == 0) {
            gfC_txt1.checked=true;
            gfC_txt2.checked=false;
        } else {
            gfC_txt2.checked=true;
            gfC_txt1.checked=false;
        }
    }
    // -->
    </script>
    ...
    <form action="" name="Form" >
    <input name="stop1" type="checkbox" value=""
    onClick="uncheck(1, 0)">Sospendi<br>
    <input name="Destroy1" type="checkbox" value=""
    onClick="uncheck(1, 1)">Cancella <br>
    </form>
Altra cosa che non ho capito: perché passi il valore 1 in tutte e due i
casi? Hai, per caso, diverse coppie di checkbox?
Maurizio.

>>>non ho capito: perché passi il valore 1
1 è il ciclo in ASP che per semplicifare l'ho postato con un solo numero...
sarebbero stop1, stop2, stop3 e stopX....etc.
GRAZIE ANCORA MI HAI FATTO IMPARERE UNA GOCCI A IN +
Bye Alen

Ho provato ma mi da errore...ci deve essere qualche sintassi che non
conosco...
ti chiedo questo perchè nella pagina in cui arrivano gli ID questi creano
l'array
sul nome dell'elemento form ossia stop o Destroy, quindi devo per forza
usare questo metodo o divento matto!
Ho provato a smanettare ma non riesco.
Conosci la sintassi.
C e TNKS ancora..
---------------------------------------------
<head>
<title>Documento senza titolo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript" language="Javascript">
<!--
function uncheck(a, n) {
 var gfC_txt1 = document.getElementById["stop"+a];
 var gfC_txt2 = document.getElementById["Destroy"+a];
 if (n == 0) {
  gfC_txt1.checked=true;
  gfC_txt2.checked=false;
 } else {
  gfC_txt2.checked=true;
  gfC_txt1.checked=false;
 }
}
// -->
</script>
<form action="" name="Form" >
<input  id="stop" type="checkbox" value="" onClick="uncheck(1,
0)">Sospendi<br>
<input  id="Destroy" type="checkbox" value="" onClick="uncheck(1,
1)">Cancella <br>
</form>
</body>
</html>

x la cronaca riuscito!!!!!!!
<script type="text/javascript" language="Javascript">
<!--
function uncheck(a,n) {
 var gfC_txt1 = document.getElementById('stop'+a);
 var gfC_txt2 = document.getElementById('Destroy'+a);


Ho cantato vittoria troppo presto....
OK se clicco su uno o sull'altro giustamente il secondo si dececca, ma se
voglio dececcare anche questo, tipo...voglio escluderlo dalle operazioni
come faccio?
Spero in voi.
Alen
+++++++++++++++++++++++++++++++++++++++++++++++
<html>
<head>
<title>Documento senza titolo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript" language="Javascript">
<!--
function uncheck(a,n) {
 var gfC_txt1 = document.getElementById('stop'+a);
 var gfC_txt2 = document.getElementById('Destroy'+a);
 if ((n == 0)&&(gfC_txt1.checked=false)) {
 gfC_txt1.checked=true;
 gfC_txt2.checked=false;
 }
 else if ((n == 0)&&(gfC_txt1.checked=true)) {
 gfC_txt1.checked=false;
 gfC_txt2.checked=false;
 }
 else if ((n == 1)&&(gfC_txt2.checked=true)) {
 gfC_txt1.checked=false;
 gfC_txt2.checked=false;
 }
 else if ((n == 1)&&(gfC_txt2.checked=false)) {
 gfC_txt1.checked=false;
 gfC_txt2.checked=true;
 }
}
// -->
</script>
<form action="" name="Form" >
<input  id="stop1" type="checkbox" value=""
onClick="uncheck(1,0)">Sospendi<br>
<input  id="Destroy1" type="checkbox" value=""
onClick="uncheck(1,1)">Cancella <br>
</form>
</body>
</html>

 voglio escluderlo dalle operazioni come faccio?
    function uncheck(a,n) {
        var gfC_txt1 = document.getElementById('stop'+a);
        var gfC_txt2 = document.getElementById('Destroy'+a);
        if (n == 0)
            gfC_txt2.checked=false;
        else
            gfC_txt1.checked=false;
    }
Oppure, più semplicemente:
    function uncheck(a,n) {
        var gfC_txt1 = document.getElementById('stop'+a);
        var gfC_txt2 = document.getElementById('Destroy'+a);
        eval("gfC_txt" + (2 - n) + ".checked=false;");
    }
Per quanto riguarda il document.getElementById, ti inviterei a leggere il
thread iniziato da Riccardo: "Sito ottimizzato per... perdere clienti!". Non
riesco a capire perché si deve sostituire un'istruzione che viene
riconosciuta da tutti i browser con un'altra che non aggiunge niente e viene
riconosciuta solo da browser relativamente recenti. È solo una domanda;
ovviamente avrai le tue buone ragioni.
Maurizio.

 ovviamente avrai le tue buone ragioni.
Si, fondamentalmente hai ragione,
mi sembra che sia compatibile con explorer 5 in su e netscape 6 +, vero?
Comunque come ti dicevo prima e per non incasinarmi con righe e righe di VB,
e dato che è una intranet di pubblicazione conosco la piattaforma...
Grazie ancora e ciao!