Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/08/2009, 11:25
Avatar de zerokilled
zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 7 meses
Puntos: 1485
Respuesta: Problema con funcio de java ayuda porfavor!!!!

sucede que cuando usas una referencia como document.nombre_form.nombre_radio, en esta forma devuelve un solo elemento si existe solo un elemento con dicho nombre. sin embargo, si varios elementos tienen el mismo nombre, entonces la linea de codigo anterior devuelve una coleccion de elementos, algo parecido a un array. por tanto, en tu caso sucede que si radio es el unico elemento, entonces radio.length es undefined porque no existe esa propiedad para dicho elemento. por ello te dice que no has seleccionado una opcion. puedes usar varias formas para comprobar cuando se trata de un solo elemento o de una coleccion. en el siguiente arreglo utilizo isNaN para determinar si existe la propiedad length.
Código:
function getSelectedRadioButton(radio){
var r, flagSelec = false;
if(isNaN(radio.length) && radio.checked){
alert("El elemento seleccionado es: 0");
return 0;
}

r=radio.length;
	for (i=0; i<r; i++){
		if (radio[i].checked) {
		seleccionado=i;
		flagSelec=true;
		}
	}
	if(flagSelec==true){
	alert("El elemento seleccionado es: " + seleccionado);
	return seleccionado;
	} else alert("Debe seleccionar algun hotel!!!");
}
la otra alternativa sin tener que hacer un arreglo a la funcion, es pasar una coleccion de elementos como argumento a la funcion. para ello, tienes que usar la funcion document.getElementsByName el cual crea una coleccion independientemente de la cantidad de elementos.
Código:
getSelectedRadioButton(document.getElementsByName("nombre_radio"));
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.