Foros del Web » Programando para Internet » Javascript »

Problema con funcio de java ayuda porfavor!!!!

Estas en el tema de Problema con funcio de java ayuda porfavor!!!! en el foro de Javascript en Foros del Web. Hola saludos a todos porfavor ayudenme no encuento como resolver esto, mi problema es el siguiente tengo la siguiente funcion que escribe hoteles en forma ...
  #1 (permalink)  
Antiguo 09/08/2009, 07:10
 
Fecha de Ingreso: julio-2009
Mensajes: 14
Antigüedad: 15 años, 4 meses
Puntos: 0
Problema con funcio de java ayuda porfavor!!!!

Hola saludos a todos porfavor ayudenme no encuento como resolver esto, mi problema es el siguiente tengo la siguiente funcion que escribe hoteles en forma de radioButoon`s

function muestraHoteles()
{
var numMunicipio, nombreHotel, i, elementoRadio, Radios2;
numMunicipio = document.getElementById("finicio").value;
elementoMunicipio = lstMunicipios[ numMunicipio ].getElementsByTagName("hotel");
borrarElementos();
alert(elementoMunicipio.length);
for(i=0; i < elementoMunicipio.length; i++ )
{
nombreHotel= elementoMunicipio[i].getElementsByTagName("nombre_hotel");
elementoRadio = document.createElement("input");
elementoRadio.setAttribute("type", "radio");
elementoRadio.setAttribute("value", i);
elementoRadio.setAttribute("name", "radio");
Radios2 = document.getElementById("contieneRadios");
Radios2.appendChild(elementoRadio);
Radios2.appendChild(document.createTextNode(nombre Hotel[0].childNodes[0].nodeValue));
Radios2.appendChild(document.createElement("br"));
}

}

hasta ahi voy bien despues llamo el nombre del radio a la siguiente funcion

function getSelectedRadioButton(radio){
var r, flagSelec = false;
r=radio.length;
for (i=0; i<r; i++)
{
if (radio[i].checked) { //return i;
seleccionado=i;
flagSelec=true;
//break;
// alert("El elemento seleccionado es: " + i);
}
}
if(flagSelec==true)
{
alert("El elemento seleccionado es: " + seleccionado);
return seleccionado;

}
else alert("Debe seleccionar algun hotel!!!");

}



function muestraPresupuesto()
{
var numMunicipio, numHotel, Habitaciones, Habitacion, Precio, Personas, aHabitacion = [], aPrecio = [], aPersonas = [];
var nombreHotel, numHuespedes, numHabitaciones, totHabitaciones = 0, totPersonas = 0, totMonto = 0, totMontoTotal = 0;

numMunicipio = document.getElementById("finicio").value;
elementoMunicipio = lstMunicipios[ numMunicipio ].getElementsByTagName("hotel");

//y en esta funcion llevo el valor del radio en la siguiente variable

numHotel = parseInt(getSelectedRadioButton(document.presupues to.radio));


mi problema es que cuando un municipio tiene 3 hoteles y seleccionann uno me dice el valor del hotel q selecciono, pero cuando el municipio tiene 1 solo hotel y lo selecciono me dice "Debe seleccionar algun hotel!!!" y ya esta seleccionado no se porq me dice eso.

Ayudenme porfavor!!!!
  #2 (permalink)  
Antiguo 09/08/2009, 11:25
Avatar de 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.
  #3 (permalink)  
Antiguo 09/08/2009, 19:01
 
Fecha de Ingreso: julio-2009
Mensajes: 14
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema con funcio de java ayuda porfavor!!!!

Gracias por tu ayuda creeme q te lo agradesco mucho!!!!!!!!
Sabes mucho de esta area por lo q veo
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 18:40.