Hola:
En su día, no me acuerdo de dónde, encontré un código de JavaScript para verificar si en un formulario, al pulsar "Enviar" y antes de mandarlo, había algún botón de RadioButton seleccionado. Si no lo había no mandaba el formulario, sacando un mensaje de alerta.
Este código lo suelo usar en apartado de gestión de las webs que programo, en las secciones dónde se eliminan registros. Es decir, para eliminar un determinado registro de la base de datos, habrá que seleccionar su radiobutton correspondiente del listado presentado.
Todo va bien. Hasta el momento en el que solamente queda un registro. Entonces, por mucho que selecciones el radiobutton te saca el mensaje de que no hay ninguno seleccionado. ¿Por qué?, no lo sé.
Parece que queda obligatorio que hay al menos un registro en el listado, sin poder eliminar totalmente todos.
¿¿Alguien sabría como solucionarlo??
Seguidamente, dejo un ejemplo de la última manera que lo programé:
// SEGÚN EL VALOR DE tarea, SE INCLUIRÁ LA PROMOCIÓN EN VENTAS REALIZADAS Y SE ELIMINARÁ
// Ó SE ELIMINARÁ SOLAMENTE
function valid_ElmProm(tarea) {
// Lista con los radioButton
opcion = adm_elmProm.promo_id;
// Variable que detecta si hay alguno seleccionado
selecc = false // Inicialmente en false
// Se recorren todos los radioButton buscando que haya alguno marcado
x=0;
while (!selecc && (x <opcion.length)) {
if (opcion[x].checked) {
selecc = true;
}
x++;
}
if (!selecc) {
alert ("Seleccionar la promoción a eliminar.");
return false;
}
if (tarea == "insElim") {
ht = document.getElementsByTagName("html");
ht[0].style.filter = "progid:DXImageTransform.Microsoft.BasicImage(gray scale=1)";
if (confirm(':: La promoción seleccionada será eliminada ::\n\n¿Desea que conste en la Lista de Ventas?\n- \'Aceptar\' para continuar.\n- \'Cancelar\', para optar por sólo Eliminar.')){
document.adm_elmProm.action= "adm_elmProm.asp?paraVentas=SI";
document.adm_elmProm.submit();
return true;
} else {
ht[0].style.filter = "";
return false;
}
} else if (tarea == "soloElim") {
ht = document.getElementsByTagName("html");
ht[0].style.filter = "progid:DXImageTransform.Microsoft.BasicImage(gray scale=1)";
if (confirm(':: La promoción seleccionada será eliminada solamente ::\n\n- \'Aceptar\' para continuar.\n- \'Cancelar\', para optar por la opción de incluirla en el\n historial de Ventas.')){
document.adm_elmProm.action= "adm_elmProm.asp";
document.adm_elmProm.submit();
return true;
} else {
ht[0].style.filter = "";
return false;
}
}
}// FIN DE valid_ElmProm(tarea)
A ver si alguien me sugiere algo, porfa´...
Saludos,
zacktagnan.
============================================