Eso del título, salvo que no sé cuantos checkboxES serán puesto que son generados por ASP en base a los registros de una tabla y en la faq 92 la cantidad es fija.
Cómo se podría adaptar dicha FAQ? (los chkbox se llaman desde PUB1 a PUBn)
| ||||
Seleccionar sólo un CHKBOX (faq 92) Eso del título, salvo que no sé cuantos checkboxES serán puesto que son generados por ASP en base a los registros de una tabla y en la faq 92 la cantidad es fija. Cómo se podría adaptar dicha FAQ? (los chkbox se llaman desde PUB1 a PUBn) |
| ||||
Hola JavierB, gracias por la ayuda. Te comento: Probé el script y, si bien funciona correctamente en formularios con sólo un "juego" de checkbox'es, no sirve tal cual está para el formulario que estoy haciendo porque además (cosa que omití anteriormente) tengo otro checkbox (eliminar1 a eliminarN) al lado de este (PUB1 a PUBn) por cada registro. Entonces, no me permite seleccionar ni uno del juego "PUB" si hay marcado por lo menos uno del juego "eliminar" (se entendió? ) y esa situación es posible que ocurra. Yo creo que se podría solucionar si de alguna manera se hace referencia en el script a los checkbox cuyo name comience por PUB, pero no sé cómo Además te paso un script que estaba haciendo mientras me respondías, pero estoy "trabado".. no sé por qué el alert me devuelve siempre la máxima cantidad de checkbox que existan sin importar si están o no checked:
Código:
function SoloUno(CantidadElemento) { var i; var n = parseInt(eval("document.Web." + CantidadElemento + ".value")); var cuenta = 0; for (i = 1; i < n + 1; i++){ if (eval("document.Web.PUB" + i + ".chequed = true")){ cuenta++; } } alert(cuenta) // luego la idea sería que si cuenta es mayor a 1 haga un alert // al submit del formulario y detenga el submit. Si es 1, todo bien: que haga submit. // Si es 0, que avise que no puede ser 0 y detenga el submit } Donde "CantidadElemento" es un text hidden que contiene la cantidad de checkbox que se han generado dinámicamente. Iba por buen camino con ese código o es un disparate la idea? Saludos |
| ||||
Hola de nuevo. No he probado tu función, pero tienes un error en esta línea: if (eval("document.Web.PUB" + i + ".chequed == true")){ En JavaScript el signo de comparación en un igual doble. He cambiado un poco mi código y creo que se acerca más a lo que necesitas: Código PHP: |
| ||||
Cita: En JavaScript el signo de comparación en un igual doble Pero claro! Soy un nardo de aquellos... siempre lo olvido Cita: if(chk.name.substr(0,3)=='PUB' && chk.checked) Creo que ahora va a funcionar perfectamente. Gracias, el lunes te comento cómo me fue |