Foros del Web » Programando para Internet » Javascript »

no puedo concatenar y colocar value

Estas en el tema de no puedo concatenar y colocar value en el foro de Javascript en Foros del Web. HOLA A TODOS NECESITO LOGRAR QUE FUNCIONE ESTO DE ESTA MANERA el problema es que cuando concateno y luego coloco un value no me arroja ...
  #1 (permalink)  
Antiguo 30/04/2010, 11:33
 
Fecha de Ingreso: febrero-2010
Ubicación: valencia
Mensajes: 146
Antigüedad: 14 años, 9 meses
Puntos: 3
no puedo concatenar y colocar value

HOLA A TODOS NECESITO LOGRAR QUE FUNCIONE ESTO DE ESTA MANERA


el problema es que cuando concateno y luego coloco un value no me arroja el valor
hice un

r1=('hini'+j);
alert(r1.value);

y necesito q pase los valores por parametro por el boton enviar


si yo hago un alert de esto asi hini1.value si me da el valor pero si lo hago con 'hini'.+j.value me dice undefined! por q ocurre eso? necesito hacerlo asi porq tengo q recorrer los campos q no estan establecidos cuantos son si no que el usuario puede agregar muchos de ellos tantos como el quiera!

NOTA no puedo usar otra estructura porq ya la base de datos esta creada y los codigos de php y seria cambiar tooodo! y no me queda tiempo!

AYUDA POR FAVOR :(






<INPUT TYPE="button" NAME="btnComparar" Value="Comparar horas" OnClick= "
for(j=1;j<4;j++)
{
alert(CompararHoras('hini'+j.value,'hfin'+j.value, 'vam'+j.value,'vpm'+j.value));

} ">
  #2 (permalink)  
Antiguo 30/04/2010, 11:46
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, 6 meses
Puntos: 1485
Respuesta: no puedo concatenar y colocar value

¿por qué sucede? porque las referencias son incorrectas. es decir, cuando escribes literalmente hini1, javascript entiende que tiene que leer una propiedad o variable. pero cuando escribes 'hini' + r, estas creando un string. de modo que cuando lees la variable r1 hace referencia al string y luego a la propiedad value de dicho string, el cual es undefined porque no existe esa propiedad en dicho string.

la solucion. utiliza la sintaxis de corchete ([ ]) cuando los nombres de propiedades sean variables (entiendase variables como contenido que varia). dentro de los corchetes construyes un string que represente el nombre de la propiedad que deseas accesar. por ejemplo, document.forms[0]['hini' + j].value, asumiendo que j es un iterador.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 02/05/2010, 07:35
 
Fecha de Ingreso: febrero-2010
Ubicación: valencia
Mensajes: 146
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: no puedo concatenar y colocar value

gracias!!! voy a probar!
  #4 (permalink)  
Antiguo 02/05/2010, 22:48
 
Fecha de Ingreso: febrero-2010
Ubicación: valencia
Mensajes: 146
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: no puedo concatenar y colocar value

mi amigo lo probe pero no me funciono


mira mi codigo hecha un ojo a ver por favor de verdad te lo agradezco


<HTML>
<HEAD>
<TITLE> prueba de horas y am y pm</TITLE>

<SCRIPT LANGUAGE="JavaScript">


function CompararHoras(sHora1, sHora2, viam, vipm) {

var arHora1 = sHora1.split(":");
var arHora2 = sHora2.split(":");
var viam;
var vipm;

// Obtener horas y minutos (hora 1)
var hh1 = parseInt(arHora1[0],10);
var mm1 = parseInt(arHora1[1],10);

// Obtener horas y minutos (hora 2)
var hh2 = parseInt(arHora2[0],10);
var mm2 = parseInt(arHora2[1],10);

// Comparar MD5: bef463d2dca2d7da202a2c3d58c22d13

////////////////////primer if comprara si el primer listbox es AM si es asi lo acepta/////////////////////////////////

if (viam<vipm)
{

return "Hora correcta";
}

else

{

////////////////////segundo if comprara si el primer listbox es PM si es asi NO lo acepta/////////////////////////////////

if (viam>vipm)
{
return "Hora incorrecta";
}

else

{

////////////////////Tercer if comprara si el primer o segundo listbox es igual si es asi lo acepta/////////////////////////////////

if (viam==vipm)
{

///////////////////////////si las horas del primer texbox es menor a las del segundo acepta////////////////////

if (hh1<hh2 || (hh1==hh2 && mm1<mm2))
return "Hora correcta";

else

//////////////////si las horas del primer texbox son mayores no lo acepta pero si las horas son iguales y los minutos del/////
//////////////////primero son mayor o igual que el segundo de igual manera no lo acepta/////////////////////////////////////

if (hh1>hh2 || (hh1==hh2 && mm1>=mm2))
return "Hora incorrecta";

}
}
}
// "[/^(1|01|2|02|3|03|4|04|5|05|6|06|7|07|8|08|9|09|10| 11|12)\:([0-5]0|[0-5][1-9])/]"

}

function fecha(a){

//onChange="alert(CompararHoras(h1.value,h2.value,va r1.value,var2.value));"

patron ="/^(1|01|2|02|3|03|4|04|5|05|6|06|7|07|8|08|9|09|10| 11|12)\:([0-5]0|[0-5][1-9])/$";
if(!/^(1|01|2|02|3|03|4|04|5|05|6|06|7|07|8|08|9|09|10| 11|12)\:([0-5]0|[0-5][1-9])$/.test(a.value))
alert(" MALO");

}

</SCRIPT>

</HEAD>

<BODY>
<form action="btnComparar" method="post">
<p>hora inicio
<INPUT TYPE="text" NAME="hini1" value="08:15" onBlur="return fecha(this)">
<label>
<select name="vam1" size="1" id="vam1">

<option>1</option>
<option>2</option>
</select>
</label>
<BR>
hora final<INPUT TYPE="text" NAME="hfin1" value="09:30" onBlur="return fecha(this)">
<label>
<select name="vpm1" size="1" id="vpm1">
<option>1</option>
<option>2</option>
</select>
</label>
</p>
<p>&nbsp;</p>
<p>hora inicio
<INPUT TYPE="text" NAME="hini2" value="08:15" onBlur="return fecha(this)">
<label>
<select name="vam2" size="1" id="vam2">
<option>1</option>
<option>2</option>
</select>
</label>
<BR>
hora final
<INPUT TYPE="text" NAME="hfin2" value="09:30" onBlur="return fecha(this)">
<label>
<select name="vpm2" size="1" id="vpm2">
<option>1</option>
<option>2</option>
</select>
</label>
</p>
<p>&nbsp;</p>
<p>hora inicio
<INPUT TYPE="text" NAME="hini3" value="08:15" onBlur="return fecha(this)">
<label>
<select name="vam3" size="1" id="vam3">
<option>1</option>
<option>2</option>
</select>
</label>
<BR>
hora final
<INPUT TYPE="text" NAME="hfin3" value="09:30" onBlur="return fecha(this)">
<label>
<select name="vpm3" size="1" id="vpm3">
<option>1</option>
<option>2</option>
</select>
</label>
</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>
<INPUT TYPE="button" NAME="btnComparar" Value="Comparar horas" OnClick= "
for(j=1;j<4;j++)
{



alert(CompararHoras('hini'+j.value,'hfin'+j.value, 'vam'+j.value,'vpm'+j.value));

} ">

</p>
</form>
</BODY>
</HTML>
  #5 (permalink)  
Antiguo 03/05/2010, 02:09
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, 6 meses
Puntos: 1485
Respuesta: no puedo concatenar y colocar value

primero, no veo en ninguna parte del codigo haber intentado lo que te sugeri. y segundo, no comprendo porque existe un nuevo usuario que expuso con el mismo mensaje que has publicado aqui. el tema en cuestion, http://www.forosdelweb.com/f13/no-lo...racion-802998/
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #6 (permalink)  
Antiguo 03/05/2010, 15:10
 
Fecha de Ingreso: febrero-2010
Ubicación: valencia
Mensajes: 146
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: no puedo concatenar y colocar value

coloque esto en el boton

alert(CompararHoras(['hini'+j].value,['hfin'+j].value, ['vam'+j].value,['vpm'+j].value));

pero igual no funciono por eso no lo coloque de nuevo aqui! y con respecto a ese link es un amigo pero esta tratando de hacerlo de otra forma! enviando el formulario entero no variable por variable
  #7 (permalink)  
Antiguo 03/05/2010, 17:55
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, 6 meses
Puntos: 1485
Respuesta: no puedo concatenar y colocar value

Cita:
[...] con respecto a ese link es un amigo [...]
no es para discriminarte, porque no importa si sea profesional, estudiante o entusiasta, a todos se le ofrecen la ayuda por igual. o al menos, asi lo hago. pero las veces que sucede eso es porque son tareas de escuela. lo importante es que tu hagas tu parte.

fijate que en el ejemplo que te mostre (document.forms[0]['hini' + j].value), el string compuesto (la seccion en rojo) esta precedido por un objeto, en este ejemplo document.forms[0]. lo que esta indicando es una propiedad de dicho objeto. en tu caso, no estas indicando el formulario que contiene dichos campos. o sea, no es cuestion de solo componer el nombre de la propiedad, sino tambien indicar de que objeto viene.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #8 (permalink)  
Antiguo 06/05/2010, 13:40
 
Fecha de Ingreso: febrero-2010
Ubicación: valencia
Mensajes: 146
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: no puedo concatenar y colocar value

no funciona! ya he hecho de todo! y se a lo q te refieres pero no funciona! copia el codigo y pruebalo por ti mismo para q veas!
  #9 (permalink)  
Antiguo 07/05/2010, 15:06
 
Fecha de Ingreso: febrero-2010
Ubicación: valencia
Mensajes: 146
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: no puedo concatenar y colocar value

bueno de tanto intentar de todo! yo mismo di con la solucion! si alguien tiene en un futuro ese problema haga esto! arriba tengo mi codigo! solo reemplacen el codigo del button comparar hora por este codigo!!

<INPUT TYPE="button" NAME="forms" Value="Comparar horas" OnClick= "

for(j=1;j<4;j++)
{
R1=document.getElementById('hini'+j).value;
R2=document.getElementById('hfin'+j).value;
R3=document.getElementById('vam'+j).value;
R4=document.getElementById('vpm'+j).value;

alert(CompararHoras(R1,R2,R3,R4));

}
">
  #10 (permalink)  
Antiguo 07/05/2010, 15:08
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, 6 meses
Puntos: 1485
Respuesta: no puedo concatenar y colocar value

lee acerca del tema de la sintaxis de corchete (javascript square brackets syntax):
la forma que expones tambien es una solucion, pero siempre y cuando tenga IDs.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: concatenar
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 09:21.