Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Desmarcar checkbox al marcar otro checkbox

Estas en el tema de Desmarcar checkbox al marcar otro checkbox en el foro de Javascript en Foros del Web. Buenos días amig@s, tengo el siguiente código y por más que busco en internet cómo corregirlo no encuentro el error, alguien me puede ayudar? Simplemente ...
  #1 (permalink)  
Antiguo 10/04/2013, 03:55
 
Fecha de Ingreso: abril-2007
Mensajes: 85
Antigüedad: 17 años
Puntos: 0
Pregunta Desmarcar checkbox al marcar otro checkbox

Buenos días amig@s,

tengo el siguiente código y por más que busco en internet cómo corregirlo no encuentro el error, alguien me puede ayudar?

Simplemente quiero desmarcar un checkbox si el otro esta activado, no se pueden utilizar los radio button, ya que estos siempre se quedan activados si el usuario selecciona uno de ellos...

Código:
<html>
<head>
<title>Test</title>

<script type="text/javascript">
	function check1(checkbox) {
		if (checkbox.checked) {
			image.src = "foto1.jpg";
			check2.checked = false;
		} 
		else {
			image.src = "foto.jpg";
		}
		}

	function check2(checkbox) {
		if (checkbox.checked) {
			image.src = "foto2.jpg";
			check1.checked = false;
		} 
		else {
			image.src = "foto.jpg";
		}
		}
</script>

<body>
	<img src="foto.jpg" id="image">
	<form name="configurador">
	<input type="checkbox"  onclick="check1(this);"> Foto 1
	<input type="checkbox"  onclick="check2(this);"> Foto 2
	</form>
</body>
</html>
Saludos y gracias de antemano
  #2 (permalink)  
Antiguo 10/04/2013, 04:55
 
Fecha de Ingreso: marzo-2013
Ubicación: España
Mensajes: 42
Antigüedad: 11 años, 1 mes
Puntos: 4
Respuesta: Desmarcar checkbox al marcar otro checkbox

Prueba a ponerle un id al input,
<input type="checkbox" id="check1" onclick="check1(this);">
<input type="checkbox" id="check2" onclick="check2(this);"

Y en la funcion check1:
function check1(checkbox) {
if (checkbox.checked) {
image.src = "foto1.jpg";
getElementsyiId("check2").checked = false;
}
else {
image.src = "foto.jpg";
}
}
  #3 (permalink)  
Antiguo 10/04/2013, 05:01
 
Fecha de Ingreso: abril-2007
Mensajes: 85
Antigüedad: 17 años
Puntos: 0
Respuesta: Desmarcar checkbox al marcar otro checkbox

Muchas gracias ioniben

Aún añadiendo la id no consigo que funcione....

Saludos!
  #4 (permalink)  
Antiguo 10/04/2013, 07:43
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Desmarcar checkbox al marcar otro checkbox

Se puede, pero creo que lo está complicando, lo más lógico, si solo una opción es posible es que uses radios, y un radio adicional que represente la falta de opciones
Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="es-ar">
  3. <meta charset="utf-8" />
  4. <title>Html5</title>
  5. </head>
  6. <form action="#" id="formulario">
  7. opción A <input type="radio" value="A" name="opcion" /><br />
  8. opción B <input type="radio" value="B" name="opcion" /><br />
  9. opción C <input type="radio" value="C" name="opcion" /><br />
  10. opción D <input type="radio" value="D" name="opcion" /><br />
  11. ninguna <input type="radio" value="" name="opcion" checked/><br />
  12. </form>
  13. </body>
  14. </html>
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 10/04/2013, 08:18
 
Fecha de Ingreso: marzo-2013
Ubicación: España
Mensajes: 42
Antigüedad: 11 años, 1 mes
Puntos: 4
Respuesta: Desmarcar checkbox al marcar otro checkbox

Esto te deberia de funcionar:
<html>
<head>
<title>Test</title>

<script>
function check1(box) {
if (box.checked) {

document.getElementById("checkbox2").checked=false
}
}
function check2(box) {
if (box.checked) {
document.getElementById("checkbox1").checked=false
}
}


</script>
</head>

<body>

<form>

<input id="checkbox1" type="checkbox" onclick="check1(this)" />
<input id="checkbox2" type="checkbox" onclick="check2(this)" />
</form>
</body>
</html>
  #6 (permalink)  
Antiguo 10/04/2013, 10:31
 
Fecha de Ingreso: abril-2013
Mensajes: 60
Antigüedad: 11 años
Puntos: 2
Respuesta: Desmarcar checkbox al marcar otro checkbox

a lo que te entiendo solo quieres tener una opcion activa de muchas, general mente los checkbox se usan para elegir mas de una opción..
te recomiendo usar radio buttons, asi podrias forzar que solo se tenga una opcion activada
Código HTML:
Ver original
  1. <input type="radio" name="opt" value="1">opcion uno<br>
  2. <input type="radio" name="opt" value="2">opcion dos
  3. </form>
  #7 (permalink)  
Antiguo 10/04/2013, 12:26
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Desmarcar checkbox al marcar otro checkbox

concuerdo con @emprear, para tales casos un radio adicional para descarte, o un <select> con una opción en blanco, me parece que es complicarse la vida.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #8 (permalink)  
Antiguo 11/04/2013, 03:26
 
Fecha de Ingreso: abril-2007
Mensajes: 85
Antigüedad: 17 años
Puntos: 0
Respuesta: Desmarcar checkbox al marcar otro checkbox

Al final os he hecho caso y lo he cambiado a los radio buttons, todo funciona a la perfección!

Muchas gracias cracks!

Etiquetas: checkbox, html, input, marcar
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 10:42.