Foros del Web » Programando para Internet » Javascript »

getElementsByName ayuda

Estas en el tema de getElementsByName ayuda en el foro de Javascript en Foros del Web. Hola! quisiera saber como podria modificar este if para que me permita acceder a una lista de elementos con el mismo id por lo que ...
  #1 (permalink)  
Antiguo 15/06/2010, 10:57
 
Fecha de Ingreso: septiembre-2009
Mensajes: 40
Antigüedad: 14 años, 8 meses
Puntos: 0
getElementsByName ayuda

Hola!
quisiera saber como podria modificar este if para que me permita acceder a una lista de elementos con el mismo id por lo que estube viendo seria con el metodo getElementsByName pero soy un novato usuario de javascript..

si alguien me podria dar una mano agradecido

yo lo tengo asi:
Código Javascript:
Ver original
  1. if (document.getElementById('talleSelect').selectedIndex==8 && !isNaN(document.getElementById('multiplicar').value)){
  2.         newQuantity=8*document.getElementById('multiplicar').value;}

2 formularios:

Código Javascript:
Ver original
  1. <input TYPE="value" NAME="agregar1" VALUE="1" SIZE="3" id="multiplicar">      
  2. <select size="1" name="newTalle" onChange="cambiarTalle()" id="talleSelect">
  3.           <option value="26" selected>T1bb</option>
  4.           <option value="26">T2bb</option>
  5.           <option value="27">Talle2</option>
  6.           <option value="27">Talle4</option>
  7.           <option value="28">Talle6</option>
  8.           <option value="28">Talle8</option>
  9.           <option value="29">Talle10</option>
  10.           <option value="29">Talle12</option>
  11.           <option value="25" >Curva</option>
  12.     </select>
  13.  
  14. <input TYPE= "value" NAME="agregar2" VALUE="1" SIZE="3" id="multiplicar">
  15. <select size="1" name="newTalle2" onChange="cambiarTalle()" id="talleSelect">
  16.      
  17.          <option value="26" selected>T1bb</option>
  18.           <option value="26">T2bb</option>
  19.           <option value="27">Talle2</option>
  20.           <option value="27">Talle4</option>
  21.           <option value="28">Talle6</option>
  22.           <option value="28">Talle8</option>
  23.           <option value="29">Talle10</option>
  24.           <option value="29">Talle12</option>
  25.         <option value="25">Curva</option>
  26.       </select>
  #2 (permalink)  
Antiguo 15/06/2010, 11:44
KazerPowa
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: getElementsByName ayuda

Hola,

Prueba esto:
Código Javascript:
Ver original
  1. function quick_reply(post_id) {
  2.       if (document.getElementByName('talleSelect').selectedIndex==8 && !isNaN(document.getElementByName('multiplicar').value)){
  3.               newQuantity=8*document.getElementByName('multiplicar').value;}
  4.  
  5.  
  6. }
Como ves, he cambiado getElementById por getElementByName, espero que sirva...
Saludos!
  #3 (permalink)  
Antiguo 15/06/2010, 12:02
 
Fecha de Ingreso: septiembre-2009
Mensajes: 40
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: getElementsByName ayuda

disculpa mi ignorancia kazerpowa pero despues de poner esta funcion como tendria que llamarla en el formulario?¿
o solo modificando eso que me dijiste ya tendria que funcionar?¿..
FORMULARIO1:
Código Javascript:
Ver original
  1. <input TYPE="value" NAME="agregar1" VALUE="1"SIZE="3" id="multiplicar">      
  2.  <select size="1" name="newTalle" onChange="cambiarTalle()" id="talleSelect">
FORMULARIO 2:
Código Javascript:
Ver original
  1. <input TYPE= "value" NAME="agregar2" VALUE="1"SIZE="3" id="multiplicar"></td>
  2.  <select size="1" name="newTalle2" onChange="cambiarTalle()" id="talleSelect">
  #4 (permalink)  
Antiguo 15/06/2010, 12:02
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: getElementsByName ayuda

Hola

Supongo que esto está en la función cambiarTalle

Cita:
if (document.getElementById('talleSelect').selectedIn dex==8 && !isNaN(document.getElementById('multiplicar').valu e)){
newQuantity=8*document.getElementById('multiplicar ').value;}
cambialo por

Código Javascript:
Ver original
  1. if ((val==8) && (document.getElementById('multiplicar').value == '')){
  2.         newQuantity=8*document.getElementById('multiplicar').value;}

Ahora llama a la función

Cita:
onChange="cambiarTalle(this.options[this.selectedIndex].value)"
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 15/06/2010, 12:48
 
Fecha de Ingreso: septiembre-2009
Mensajes: 40
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: getElementsByName ayuda

adler he probado de todas formas con el ejemplo que me diste y no tube exito..

este if esta adentro de otra funcion y no en la de cambiarTalle...
Código Javascript:
Ver original
  1. if (document.getElementById('talleSelect').selectedIn dex==8 && !isNaN(document.getElementById('multiplicar').valu e)){
  2. newQuantity=8*document.getElementById('multiplicar ').value;}

la funcion cambiar talle la tengo asi:
Código Javascript:
Ver original
  1. function cambiarTalle()
  2. {
  3.   document.itemsform.text3.value =
  4.      document.itemsform.newTalle.options [document.itemsform.newTalle.selectedIndex].value;
  5.      
  6.  document.itemsform.text2.value =
  7.      document.itemsform.newTalle.options[document.itemsform.newTalle.selectedIndex].text;
  8.          }
l
el cambio en el if que me dijiste lo he probado meter en la funcion cambiarTalle como me has dicho pero no logro que ande..
habra alguna otra manera?

Última edición por juanitoto; 15/06/2010 a las 13:31
  #6 (permalink)  
Antiguo 15/06/2010, 14:10
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: getElementsByName ayuda

Hola

No tiene sentido lo que dices, o al menos yo no se lo veo. Si el js está en otra función, ¿donde la estás llamando? Si no lo haces desde el select, ¿como pretendes que sepa el valor de que select recoger? Por lo tanto ¿qué sentido tiene que tengan el mismo id? ¿Complicarse la vida? Aclara un poco el asunto

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #7 (permalink)  
Antiguo 15/06/2010, 16:41
Avatar de Tecna  
Fecha de Ingreso: enero-2010
Mensajes: 291
Antigüedad: 14 años, 3 meses
Puntos: 45
Respuesta: getElementsByName ayuda

Buenas,

parece que no te quedó tan claro como dijiste en el otro post, el id DEBE SER UNICO, sólo tienes que cambiar el nombre a uno de ellos. Por otro lado getElementsByName hace referencia al atributo name, no tiene nada que ver con ids. Los atributos name sí pueden tener el mismo valor en distintos elementos pero en tu ejemplo el valor es distinto. Además como puede haber varios elementos con el mismo name lo que devuelve getElementsByName es un array, así que habría que refererirse a cada elemento por su índice, en tu caso como no se repite el name el array sólo tendría un elemento, el [0]. Por eso entre otras cosas no funcionaría el ejemplo de KazerPowa, a parte de que está mal escrito, falta una s en getElementsByName y según tu ejemplo en name es newTalle o newTalle2, quedaría así:

Código Javascript:
Ver original
  1. document.getElementsByName('newTalle')[0]; // el primer select

pero ya que el name es único en este caso, sería más fácil hacerlo con getElementById ya que el id también es único, simplemente pon en el id el mismo valor que tienes en los name y dejaló como lo tenías al principio.

Otra cosa, ¿qué es un input type value? no creo que exista tal cosa.
  #8 (permalink)  
Antiguo 15/06/2010, 17:14
 
Fecha de Ingreso: septiembre-2009
Mensajes: 40
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: getElementsByName ayuda

donde iria esa linea que escribes .. ya estoy perdido
gracias
  #9 (permalink)  
Antiguo 16/06/2010, 06:50
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: getElementsByName ayuda

Hola

Prueba así

Código Javascript:
Ver original
  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. function cambiarTalle(val,txt) {
  5. document.itemsform.text2.value = txt;
  6. document.itemsform.text3.value = val;
  7. if (val == 25) {
  8. document.itemsform.agregar1.value = val*8;
  9. }
  10. }
  11.  
  12. function buyItem(newQuantity) {
  13.        
  14.         alert(newQuantity);
  15.     }
  16.  
  17. </script>
  18. </head>
  19. <body>
  20. <form NAME="itemsform" >
  21.  
  22. <input TYPE="text" NAME="agregar1" VALUE="1" SIZE="3">    
  23.  
  24. <select size="1" name="newTalle" onChange="cambiarTalle(this.value,this.options[this.selectedIndex].innerHTML)" id="talleSelect">
  25. <option value="26" selected>T1bb</option>
  26. <option value="29">T12</option>
  27. <option value="25">Curva</option>
  28. </select>
  29.  
  30. <select size="1" name="newTalle2" onChange="cambiarTalle(this.value,this.options[this.selectedIndex].innerHTML)" id="talleSelect">
  31. <option value="26" selected>T1bb</option>
  32. <option value="29">T12</option>
  33. <option value="25">Curva</option>
  34. </select>
  35.  
  36. <input name="text2" type="text" style="border:0;" value="T1bb" size="2" >$
  37. <input name="text3" type="text" style="border:0;" value="26" size="2">
  38.  
  39. <input name="cbtadd" type="button" value="Agregar" onClick="buyItem(document.itemsform.agregar1.value)" >
  40. </form>
  41. </body>
  42. </html>

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #10 (permalink)  
Antiguo 16/06/2010, 12:41
 
Fecha de Ingreso: septiembre-2009
Mensajes: 40
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: getElementsByName ayuda

hola adler gracias por tu ayuda! algo me sirvio
saludos

Etiquetas: Ninguno
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 03:24.