Foros del Web » Programando para Internet » Javascript »

poner un selected en varios select tras cargar la página.

Estas en el tema de poner un selected en varios select tras cargar la página. en el foro de Javascript en Foros del Web. Hola a todos. Tengo en un formulario tres select para que el usuario seleccione el dia, mes y año. Lo que trato de hacer es ...
  #1 (permalink)  
Antiguo 13/03/2008, 06:28
Avatar de bruli  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia, Spain, Spain
Mensajes: 77
Antigüedad: 18 años
Puntos: 2
poner un selected en varios select tras cargar la página.

Hola a todos.

Tengo en un formulario tres select para que el usuario seleccione el dia, mes y año.

Lo que trato de hacer es que al cargarse la página en dichos select aparezca la fecha actual.

Estoy llamando a la función javascript con onload, en la etiqueta body. pero creo que no funciona.

Pego el codigo.

Javascipt.
Código:
function fechAct(){
 fechaAct= new Date();
 anyo= fechaAct.getYear();
 dia= fechaAct.getDate();
 mes= fechaAct.getMonth();
 meses= new Array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
 if (anyo < 1000)
		anyo+=1900;
 document.prueba.dia_recogida.selected.value= dia;
 document.prueba.mes_recogida.selected.value= meses[mes];
 document.prueba.any_recogida.selected.value= anyo;
}
Formulario
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="en_US" xml:lang="en_US">
<!--
 * Created on 13/03/2008
 *
 * To change the template for this generated file go to
 * Window - Preferences - PHPeclipse - PHP - Code Templates
-->
 <head>
  <title>prueba de fechas</title>
  <script language="Javascript" type="text/javascript" src="fechaAct.js"></script>
 </head>
 <body onload="fechAct();">
 <form name="prueba" action="kdkd" method="POST">
  <table >
  	<tr><td> <select name="dia_recogida">
          <option value="1">1</option>
          <option value="2">2</option>
          <option value="3">3</option>
          <option value="4">4</option>

          <option value="5">5</option>
          <option value="6">6</option>
          <option value="7">7</option>
          <option value="8">8</option>
          <option value="9">9</option>
          <option value="10">10</option>

          <option value="11">11</option>
          <option value="12">12</option>
          <option value="13">13</option>
          <option value="14">14</option>
          <option value="15">15</option>
          <option value="16">16</option>

          <option value="17">17</option>
          <option value="18">18</option>
          <option value="19">19</option>
          <option value="20">20</option>
          <option value="21">21</option>
          <option value="22">22</option>

          <option value="23">23</option>
          <option value="24">24</option>
          <option value="25">25</option>
          <option value="26">26</option>
          <option value="27">27</option>
          <option value="28">28</option>

          <option value="29">29</option>
          <option value="30">30</option>
          <option value="31">31</option>
        </select>
        <select name="mes_recogida">
          <option value="Enero">Enero</option>
          <option value="Febrero">Febrero</option>
          <option value="Marzo">Marzo</option>
          <option value="Abril">Abril</option>
          <option value="Mayo">Mayo</option>
          <option value="Junio">Junio</option>
          <option value="Julio">Julio</option>
          <option value="Agosto">Agosto</option>

          <option value="Septiembre">Septiembre</option>
          <option value="Octubre">Octubre</option>
          <option value="Noviembre">Noviembre</option>
          <option value="Diciembre">Diciembre</option>
        </select>
        <select name="any_recogida">

          <option value="2009">2009</option>
          <option value="2010">2010</option>
        </select>
        </td></tr>
  </table>
  </form>
 </body>
</html>
¿Alguien sabe que me falla?.

Saludos y gracias a todos.
__________________
------
Saludos.
  #2 (permalink)  
Antiguo 13/03/2008, 08:42
Avatar de ZeroLino  
Fecha de Ingreso: abril-2007
Mensajes: 91
Antigüedad: 17 años
Puntos: 2
Re: poner un selected en varios select tras cargar la página.

duda...

la fecha la quieres mostrar por pantalla (actual)??

bueno.. eso no tienes para que llamarla desde js

date = Date()
anno = year(date)
mes = Right("00" & Month(date),2)
dia = Right("00" & day(date),2)
Fecha = dia & "-" & mes & "-" & anno

despues le aplicas response. para mostrar la fecha..

pero eso de llenar los combos con select.. igual medio complicado.. por el tema de febrero.. porque hay que actulizar ese combo..

te recomiendo que uses calendar..

saludos

ZeroLino
  #3 (permalink)  
Antiguo 13/03/2008, 08:48
Avatar de messer  
Fecha de Ingreso: julio-2004
Mensajes: 467
Antigüedad: 19 años, 9 meses
Puntos: 5
Re: poner un selected en varios select tras cargar la página.

Aqui esta la falla:

Cita:
Iniciado por bruli Ver Mensaje
document.prueba.dia_recogida.selected.value= dia;
document.prueba.mes_recogida.selected.value= meses[mes];
document.prueba.any_recogida.selected.value= anyo;
Tienes error de sintaxis en las 3 lineas, para indicar que tal campo debe estar seleccionado debes hacerlo de esta manera:
Código:
 document.prueba.dia_recogida.options[n].selected= true;
En el caso del Mes, te puede funcionar si entre las llaves colocas 'mes' Ej:
Código:
 document.prueba.mes_recogida.options[mes].selected= true;
y te funcionara correctamente, pero para los demas es distinto.

Espero te sirva de ayuda. Saludos!!
__________________
<script type="text/messerScript"><!--
window.onload=function(){ loadMesserRules(this.href) }
--></script>
  #4 (permalink)  
Antiguo 13/03/2008, 14:39
Avatar de bruli  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia, Spain, Spain
Mensajes: 77
Antigüedad: 18 años
Puntos: 2
Re: poner un selected en varios select tras cargar la página.

Cita:
Iniciado por messer Ver Mensaje
Aqui esta la falla:



Tienes error de sintaxis en las 3 lineas, para indicar que tal campo debe estar seleccionado debes hacerlo de esta manera:
Código:
 document.prueba.dia_recogida.options[n].selected= true;
En el caso del Mes, te puede funcionar si entre las llaves colocas 'mes' Ej:
Código:
 document.prueba.mes_recogida.options[mes].selected= true;
y te funcionara correctamente, pero para los demas es distinto.

Espero te sirva de ayuda. Saludos!!
Estupendo. Gracias
__________________
------
Saludos.
  #5 (permalink)  
Antiguo 14/03/2008, 02:29
Avatar de bruli  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia, Spain, Spain
Mensajes: 77
Antigüedad: 18 años
Puntos: 2
Re: poner un selected en varios select tras cargar la página.

Bueno, tras probar esto, compruebo que lo que realmente se consigue haciendo...

Código:
document.nom_form.nom_campo.options[n].selected= true
... es que ponga como seleccionado por defecto el que esté en la posición que corresponda al valor "n". Es decir que si n=4, el selected será el que esté en la posición 5 (pues el primero es 0). Con lo cual si al obtener el valor del dia...

Código:
dia= new Date().getDate();
...y esté nos da 14 (para el día de hoy), aplicandolo al select correspondiente, como he puesto antes, seleccionará el que esté en la poción 15. Habría que restar uno al valor de la variable dia para que sea correcto.

Mi pregunta. ¿No es posible hacer que se asocie el selected al option en función de su valor?.

Saludos y gracias por la ayuda.
__________________
------
Saludos.
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 13:05.