Foros del Web » Programando para Internet » Javascript »

Seleccionar no mas de 3 checkbox

Estas en el tema de Seleccionar no mas de 3 checkbox en el foro de Javascript en Foros del Web. hola amigos tengo una encuesta con varias preguntas lo que tengo que hacer es que no me deje seleccionar mas de 3 tengo algo hecho ...
  #1 (permalink)  
Antiguo 15/05/2003, 08:04
 
Fecha de Ingreso: marzo-2002
Ubicación: la comuna de la florida santiago chile
Mensajes: 71
Antigüedad: 22 años, 1 mes
Puntos: 0
Seleccionar no mas de 3 checkbox

hola amigos tengo una encuesta con varias preguntas lo que tengo que hacer es que no me deje seleccionar mas de
3

tengo algo hecho . me pueden dar una manito con esto.

lo que tengo lo hace pero cuando me tira el alerta me borra no el ultimo que seleccione si no el ultimo de la lista que tengo

pueden verlo y ayudar


<html>
<!-- Creation date: 25/04/03 -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title></title>
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="author" content="Manuel Garrido">
<meta name="generator" content="AceHTML 5 Pro">
</head>
<body>
<script language="JavaScript1.2">
function cuenta(cual)
{
total=0
for(m=0;m<frm.length;m++)
{

if(frm.elements[m].type=='checkbox' && frm.elements[m].checked)
{
if (total>3)
{
alert("tiene mas de tres")
alert(frm.elements[m].name)
frm.elements[m].checked=false
return false;
}
total++
}

}
// alert(total)

}
</script>
<form name="frm">
<input type="checkbox" name="uno" value="1" onclick="cuenta(this)"> 1<br>
<input type="checkbox" name="dos" value="2" onclick="cuenta(this)"> 2<br>
<input type="checkbox" name="tre" value="3" onclick="cuenta(this)"> 3<br>
<input type="checkbox" name="cuatro" value="4" onclick="cuenta(this)"> 4<br>
<input type="checkbox" name="cinco" value="5" onclick="cuenta(this)"> 5<br>
<input type="checkbox" name="seis" value="6" onclick="cuenta(this)"> 6<br>

</form>



</body>
</html>
  #2 (permalink)  
Antiguo 15/05/2003, 09:18
Avatar de alexa10  
Fecha de Ingreso: julio-2002
Ubicación: De este lado...
Mensajes: 293
Antigüedad: 21 años, 9 meses
Puntos: 0
Saludos!!!

Solo tienes que realizar un pequeño cambio:

if (total>3)
{
alert("tiene mas de tres")
alert(frm.elements[m].name)
frm.elements[m].checked=false ***
return false;
}

*** cual.checked = false;

Asi eliminas la selección actual.

Espero haberte ayudado

  #3 (permalink)  
Antiguo 15/05/2003, 11:11
Avatar de franfritz  
Fecha de Ingreso: marzo-2003
Ubicación: Stgo Chile
Mensajes: 260
Antigüedad: 21 años, 1 mes
Puntos: 0
no funciona

he probado ese script pero no funciona ni con lo uno ni con lo otro, cual sera la solucion??








  #4 (permalink)  
Antiguo 15/05/2003, 11:38
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola garridoman:

El problema que tienes es que usas la variable m para poner el checkbox disabled, y esa variable la habías usado en el bucle...

Creo que sería cual.checked = false;

Pruébalo y di si es eso...

Saludos
  #5 (permalink)  
Antiguo 15/05/2003, 11:43
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola, garridoman.

Además de lo que te comenta caricatos (hola , si me descuido chocamos ) tienes que cambiar de lugar el total++

if(frm.elements[m].type=='checkbox' && frm.elements[m].checked)
{
total++
if (total>3)

Espero que ahora te marche bien. Saludos,
  #6 (permalink)  
Antiguo 15/05/2003, 11:46
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

No me había dado cuenta que mi respuesta es la misma que la de alexa10...

Saludos
  #7 (permalink)  
Antiguo 15/05/2003, 12:04
 
Fecha de Ingreso: marzo-2002
Ubicación: la comuna de la florida santiago chile
Mensajes: 71
Antigüedad: 22 años, 1 mes
Puntos: 0
Muchas Gracias

De verdad se pasaron ya estaba como medio mariuado con esto y era mas simple de lo que pensaba

gracias muchachos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:17.