Foros del Web » Creando para Internet » HTML »

Duda con input Texto y Combobox

Estas en el tema de Duda con input Texto y Combobox en el foro de HTML en Foros del Web. Buenas noches foro! Vengo a solicitar su ayda, tengo un problema y una duda, empiezo con el problema... Tengo un Combobox para una página de ...
  #1 (permalink)  
Antiguo 27/02/2012, 20:23
Avatar de Sirius381  
Fecha de Ingreso: abril-2006
Mensajes: 129
Antigüedad: 18 años, 8 meses
Puntos: 12
Duda con input Texto y Combobox

Buenas noches foro! Vengo a solicitar su ayda, tengo un problema y una duda, empiezo con el problema...

Tengo un Combobox para una página de registro, en el quiero darle al usuario la opción de que elija el año de su nacimiento, no se si se puede "autorellenar" dandole un rango de años o tengo que poner el codigo "a piedra" de esta forma:

Código HTML:
<select>
                <option value="1970">1970
                <option value="1971">1971
                <option value="1972">1972
...
            </select> 
Hacer eso hasta el 2012 va a ser un relajo, es posible?

Y ahora la duda, se que es posible, pero no he encontrado información concreta, como se le quita a la caja de texto (input) el borde "tridimensional" que tiene? es decir, mi diseño requiere que solo sea una linea delgada lo que enmarque mi caja de texto, se ve muy mal cuando le pongo un background-color y despues en un :focus lo cambio de color, todo esto en CSS, alguien me podria orientar indicandome la propiedad que manipula esto?

Desde ya mil gracias! quedo al pendiente
__________________
Don Ramón Fan
  #2 (permalink)  
Antiguo 27/02/2012, 21:43
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 21 años, 4 meses
Puntos: 105
Respuesta: Duda con input Texto y Combobox

Holas,

Creo que seria con un javascript algo como:


Código HTML:
Ver original
  1. <select id="anios"></select>
  2.  
  3. var opc = '';
  4. for(i=1970; i<=2012; i++){
  5.    opc += "<option value='"+(i)+"'>"+(i)+"</option>";
  6. }
  7. document.getElementById("anios").innerHTML = opc;

Y para quitar los border de un input algo como:

Código CSS:
Ver original
  1. input{
  2. border: none;
  3. }

o si deseas darle un linea mas delgada o uniforme:

Código CSS:
Ver original
  1. input{
  2. border: 1px solid gray; //o con el color que deseas.
  3. }

Saludos
__________________
.: Gildus :.
  #3 (permalink)  
Antiguo 27/02/2012, 21:46
Avatar de Sirius381  
Fecha de Ingreso: abril-2006
Mensajes: 129
Antigüedad: 18 años, 8 meses
Puntos: 12
Respuesta: Duda con input Texto y Combobox

Hola gildus! Muchas gracias amigo! siempr el codigo CSS del borde quedo así:

Código HTML:
#txt-srch
{
    border: 1px ridge;
    background-color: #234258;
    border-color: #b3cee1;
}


#txt-srch:focus
{
    border: 1px ridge;
    background-color: #FFF;
    border-color: #b3cee1;
}
y el javascript que me comentas voy enseguida a implementarlo, te posteo el resultado, de nuevo mil gracias compañero!

Saludos!
__________________
Don Ramón Fan
  #4 (permalink)  
Antiguo 27/02/2012, 22:03
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 21 años, 4 meses
Puntos: 105
Respuesta: Duda con input Texto y Combobox

Un css mas simplificado:

Código CSS:
Ver original
  1. #txt-srch:focus, #txt-srch{
  2.     border: 1px ridge #b3cee1;
  3. }
  4.  
  5. #txt-srch
  6. {    
  7.     background-color: #234258;
  8. }
  9.  
  10. #txt-srch:focus
  11. {
  12.     background-color: #FFF;
  13. }

Saludos
__________________
.: Gildus :.
  #5 (permalink)  
Antiguo 27/02/2012, 22:04
Avatar de Sirius381  
Fecha de Ingreso: abril-2006
Mensajes: 129
Antigüedad: 18 años, 8 meses
Puntos: 12
Respuesta: Duda con input Texto y Combobox

EL javascript implementado y funciona PERFECTO, lo implemente para los días del mes, muchísimas gracias gildus! Me sirvió muchísimo tu solución, ahora veré como ejecutar uno u otro en función del mes (es mas detalle del que requiero pero en eso radica la calidad creo yo :) )

Saludos!!
__________________
Don Ramón Fan
  #6 (permalink)  
Antiguo 28/02/2012, 00:27
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Duda con input Texto y Combobox

Ese javascript lamentablemente en ie no funciona, tendrías que hacer algo más complejo. Te lo dejo en php por si te sirve
Te dejo para dia mes y año, descartá lo que no te sirva

Código PHP:
Ver original
  1. <p>
  2. <select name="dia" id="dia">
  3. <option value="">día</option>
  4. <?php for ($i = 1; $i <= 31 ; $i++) { ?>
  5. <option value="<?php echo $i; ?>"><?php echo $i; ?></option>
  6. <?php } ?>
  7. </select>
  8. <select name="mes" id="mes">
  9. <option value="">mes</option>
  10. <?php for ($i = 1; $i <= 12 ; $i++) { ?>
  11. <option value="<?php echo $i; ?>"><?php echo $i; ?></option>
  12. <?php } ?>
  13. </select>
  14. <select name="anio" id="anio">
  15. <option value="">año</option>
  16. <?php for ($i = 1920; $i <= 2011 ; $i++) { ?>
  17. <option value="<?php echo $i; ?>"><?php echo $i; ?></option>
  18. <?php } ?>
  19. </select>
  20. </p>

y aqui una función para determinar si la fecha es válida

Código PHP:
Ver original
  1. function validarFecha($dia, $mes, $anio){
  2.   if ($dia<0 || $dia>31 || $mes<0 || $mes >12)
  3.     $valida=false;
  4.   else
  5.     if (($mes==4 || $mes==6 || $mes==9 || $mes==11) && $dia > 30)
  6.       $valida=false;
  7.     else
  8.       if ($mes==2 && $dia>28+bisiesto($anio))
  9.         $valida=false;
  10.        else
  11.         $valida=true;
  12.   return $valida;
  13. }
  14.  
  15. function bisiesto($anio){
  16.   if ($anio%4!=0)
  17.     $bisiesto=false;
  18.   else
  19.     if ($anio%400==0)
  20.       $bisiesto=true;
  21.     else
  22.       if ($anio%100==0)
  23.         $bisiesto=false;
  24.       else
  25.         $bisiesto=true;
  26.   return $bisiesto;
  27. }

saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 28/02/2012, 06:19
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 21 años, 4 meses
Puntos: 105
Respuesta: Duda con input Texto y Combobox

Creo que generarlo en el servidor no es lo adecuado, pero si estamos en la seccion PHP, claro que es valido; mas complejo no es necesario con JQuery seria mas o menos asi:
Código Javascript:
Ver original
  1. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js"></script>
  2.  
  3. <select id="anios"></select>
  4. <script>
  5.  
  6. var opc = '';
  7. for(i=1970; i<=2012; i++){    
  8.     opc += "<option value='"+(i)+"'>"+(i)+"</option>";
  9. }
  10. $('#anios').html(opc);
  11.  
  12. </script>


Hay otras formas de como puedas generarlo:

http://stackoverflow.com/questions/1...list-in-jquery

Lo de validar si es importante tanto en el lado del cliente como en el lado del servidor.

Saludos
__________________
.: Gildus :.
  #8 (permalink)  
Antiguo 28/02/2012, 07:46
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Duda con input Texto y Combobox

Cita:
Creo que generarlo en el servidor no es lo adecuado
No veo por que no
Cita:
pero si estamos en la seccion PHP, claro que es valido;
solo por intuición de lo que se entiende, te diría, tampoco estamos en la sección de javascript.

Con jquery, y si también se puede...
Creo que la idea de @Sirius381 es simplificar la confección de su html, y para eso tanto js como php son válidos

Es cierto que pueda no estar usando php, por eso mi indicación fué acompañada por un... por si te sirve

De todas maneras , si se lo quiere hacer con javascript sin cargar una librería, dejo 2 variantes

1.html
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>Generar form para fecha</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6.  
  7. <script type="text/javascript">
  8. //<![CDATA[
  9. function generar_fecha(){
  10. var dia = document.getElementById("dia");
  11. var mes = document.getElementById("mes");
  12. var anio = document.getElementById("anio");
  13.  
  14. for (var d=1; d<=31; d++){
  15. dia.options[dia.options.length] = new Option(d, d);
  16. }
  17.  
  18. for (var m=1; m<=12; m++){
  19. mes.options[mes.options.length] = new Option(m, m);
  20. }
  21.  
  22. for (var a=1920; a < 2020; a++){ // definimos el rango de años
  23. anio.options[anio.options.length] = new Option(a, a);
  24. }
  25.  
  26. }
  27.  
  28. function verificar(){
  29. var dia = document.getElementById("dia").selectedIndex;
  30. var mes = document.getElementById("mes").selectedIndex;
  31. var anio = document.getElementById("anio").selectedIndex;
  32. var valor_anio =document.getElementById("anio").value;
  33. alert(dia + '-' + mes + '-' + anio + '(' + valor_anio + ')');
  34. }
  35.  
  36. //]]>
  37. </head>
  38. <form action="#">
  39. <p>
  40. <select id="dia">
  41. <option>día</option>
  42. <select id="mes">
  43. <option>mes</option>   
  44. <select id="anio">
  45. <option>año</option>
  46. </p>
  47. <p>
  48.     <input type="button" value="verificar indices" onclick="verificar();"/>
  49. </p>
  50. </form>
  51. <script type="text/javascript">
  52. window.onload=function(){
  53. generar_fecha();
  54. }
  55. </body>
  56. </html>

2.html (hacemos aparecr por defecto la fecha actual)


Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>Generar form para fecha</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6.  
  7. <script type="text/javascript">
  8. //<![CDATA[
  9. function generar_fecha(){
  10. var hoy=new Date()
  11. var dia = document.getElementById("dia");
  12. var mes = document.getElementById("mes");
  13. var anio = document.getElementById("anio");
  14.  
  15.  
  16. var este_anio = hoy.getFullYear();
  17. for (var d=1; d<=31; d++){
  18. dia.options[dia.options.length] = new Option(d, d);
  19. }
  20.  
  21. for (var m=1; m<=12; m++){
  22. mes.options[mes.options.length] = new Option(m,m);
  23. }
  24.  
  25. for (var a=1920; a < 2020; a++){ //definimos el rango de años
  26. if(a == hoy.getFullYear()){
  27. anio.options[anio.options.length] = new Option(a,a,'defaultSelected','selected');
  28. }else{
  29. anio.options[anio.options.length] = new Option(a,a);
  30. }
  31. }
  32. dia.selectedIndex = hoy.getDate();
  33. mes.selectedIndex = hoy.getMonth()+1;
  34. }
  35.  
  36. function verificar(){
  37. var dia = document.getElementById("dia").selectedIndex;
  38. var mes = document.getElementById("mes").selectedIndex;
  39. var anio = document.getElementById("anio").selectedIndex;
  40. var valor_anio =document.getElementById("anio").value;
  41. alert(dia + '-' + mes + '-' + anio + '(' + valor_anio + ')');
  42. }
  43.  
  44. //]]>
  45. </head>
  46. <form action="#">
  47. <p>
  48. <select id="dia">
  49. <option><!--fix --></option>
  50. <select id="mes">
  51. <option><!-- fix --></option>  
  52. <select id="anio">
  53. <option><!--fix --></option>
  54. </p>
  55. <p>
  56.     <input type="button" value="verificar indices" onclick="verificar();"/>
  57. </p>
  58. </form>
  59. <script type="text/javascript">
  60. window.onload=function(){
  61. generar_fecha();
  62. }
  63. </body>
  64. </html>



__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Última edición por emprear; 28/02/2012 a las 12:17
  #9 (permalink)  
Antiguo 28/02/2012, 20:26
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 21 años, 4 meses
Puntos: 105
Respuesta: Duda con input Texto y Combobox

jajajaaj,

Felicitaciones @emprear
__________________
.: Gildus :.
  #10 (permalink)  
Antiguo 28/02/2012, 22:44
Avatar de Sirius381  
Fecha de Ingreso: abril-2006
Mensajes: 129
Antigüedad: 18 años, 8 meses
Puntos: 12
Respuesta: Duda con input Texto y Combobox

Ufff!! masters! les explico un poco, estoy trabajando con JSP's asi que creo mas 'correcto' trabajar con javascript, pero cualquier implementacion es bienvenida y re bienvenida, vo a usarlo todo jejejeje y de verdad, no es mentira, usare todo lo que me pasaron, muchas gracias a los dos!!

Saludos masters!
__________________
Don Ramón Fan
  #11 (permalink)  
Antiguo 28/02/2012, 23:00
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Duda con input Texto y Combobox

Por lo que ví, el for en JSP no difiere mucho de PHP, sería algo asi

Código JSP:
Ver original
  1. <%
  2. for ( int i = 0; i <= 31 ; i++ ) {
  3. %>
  4. <option value="<%= i %>"><%= i %></option>
  5. <%
  6.  }
  7. %>

Más o menos creo...
es cuestión de probar

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #12 (permalink)  
Antiguo 01/03/2012, 14:17
Avatar de Sirius381  
Fecha de Ingreso: abril-2006
Mensajes: 129
Antigüedad: 18 años, 8 meses
Puntos: 12
Respuesta: Duda con input Texto y Combobox

Oye emperar y si hago todo eso, toda la logica en las clases de java puro y en el codigo del portal solo llevo y traigo datos? por medio de beans o algo asi, esa implementación seria correcta? Supongo que si...

Saludos!!
__________________
Don Ramón Fan
  #13 (permalink)  
Antiguo 01/03/2012, 14:36
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Duda con input Texto y Combobox

la idea básica es hacer un bucle para ahorrarte escribir tanto html (y es aplicable a los tres lenguajes, js, php, jsp) el resto son agregados que hice o tenía hechos para mejorar el funcionamiento.
Si es mejor trabajar del lado del cliente o del server, obviamente si lo haces del lado del server es más seguro, en el caso de que javascript esté deshabilitado o no soportado. Aunque hoy en día hay aplicaciones que requieren si ó si de js, asi que hay que forzar al usuario que lo habilite.

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #14 (permalink)  
Antiguo 01/03/2012, 20:19
Avatar de Sirius381  
Fecha de Ingreso: abril-2006
Mensajes: 129
Antigüedad: 18 años, 8 meses
Puntos: 12
Respuesta: Duda con input Texto y Combobox

Ok, intentare implementarlo del lado del servidor y veo resultados, supongo que cuando esto empiece a crecer el performance va a ser importante, ahi decidire cual es el definitivo, mientras implemento todo lo que me pasaron para tenerlo ahi, nunca esta d emas no? jejeje

Muchas gracias amigo!
__________________
Don Ramón Fan

Etiquetas: optionvalue, rellenado
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 08:01.