2011-04-11 16 views
19

hay un plugin jQuery que crea automáticamente un selector de año desplegable (que es un elemento "seleccionado" pulado con todos los años a partir de la corriente y que data de un año determinado)?¿hay un selector de año desplegable de jquery

No necesito día/mes (de lo contrario, habría usado el marcador de fecha), ¡solo necesito el año!

Gracias de antemano

Respuesta

49

¿Qué pasa simplemente:

<select name="yearpicker" id="yearpicker"></select> 

Y luego:

for (i = new Date().getFullYear(); i > 1900; i--) 
{ 
    $('#yearpicker').append($('<option />').val(i).html(i)); 
} 
+0

Gran idea !!!! Gracias! –

+1

No todo ** tiene ** como plugin (aunque debo admitir que puede ser útil en sí mismo). +1 –

+0

Al final implementé una "versión del lado del servidor" de su idea porque también era necesario poblarla, pero era exactamente lo que necesitaba. De nuevo –

2

de envolver todo el código en jQuery plugin para seleccionar años entre el inicio y el fin de año:

jQuery.extend(jQuery.fn,{ 

    /* 
    ** Year selection plugin 
    ** Sample usage 
    ** $('#yearpicker').years(2007, 2017); 
    ** 
    ** HTML 
    ** <select name="yearpicker" id="yearpicker"></select> 
    */ 
    years: function(start, end) { 
     for (i = start; i <= end; i++) 
     { 
      $(this).append($('<option />').val(i).html(i)); 
     } 
    } 
}); 
2

Ampliar la solución de Jimmy Sawczuk: ¿qué pasaría si también necesitara procesar los datos de retroalimentación en una página de formulario donde se debe cargar/seleccionar una selección previa?

Una variable que contiene la selección anterior del usuario se puede utilizar en una sentencia if para asignar dinámicamente el atributo "Seleccionado" de esta manera:

for (i = new Date().getFullYear(); i > 1900; i--) 
{ 
if(userselection == i){ 
$('#yearpicker').append($('<option />').val(i).attr("selected","selected").html(i)); 
} else {  
$('#yearpicker').append($('<option />').val(i).html(i)); 
} 
} 
0

planificador de evento tiene la opción minViewMode. En mi caso he usado durante los intervalos de fechas en el año:

JavaScript: $ ('input-daterange.') Selector de fechas ({ minViewMode: 2, formato: 'aaaa' }).;

HTML:

<div class="input-daterange date"id="DataRange"> 
    <input type="text"class="input-small"/> 
    <span class="add-on">to</span> 
    <input type="text"class="input-small"/> 
</div>