restringir rango para insertar formulario fechas calendario bootstrap javascript jquery jquery-ui

javascript - rango - Cómo limitar los días disponibles en jquery ui selector de fecha



jquery datepicker events (2)

Necesito limitar el selector de fechas de jquery ui para que los futuros martes y jueves sean días seleccionables. ¿Cómo puedo lograr esto?


Proporcione un controlador onSelect al selector de fecha y haga que su controlador valide que las fechas se ajusten a sus criterios definidos. No estoy seguro de dónde se desactiva el onSelect, por lo que puede haber "deshacer" la selección si no puede detener el evento y alertar al usuario.

Una forma de hacerlo sería desarrollar una clase de validación de fecha personalizada que tome parámetros y luego llame a ese validador de fecha de la función onSelect. La función onSelect podría ocuparse de interactuar con el datepicker para mantener el diseño limpio.

Desde http://docs.jquery.com/UI/Datepicker/datepicker#options

$("div.selector").datepicker({ onSelect: function(dateText) { alert(dateText); } })

Para cambiar la visualización y la posibilidad de seleccionar una fecha o conjunto de días en particular, use un controlador beforeShowDay y haga que cambie la selección y el CSS para la fecha en cuestión.

$(".selector").datepicker({ beforeShowDay: nationalDays}) natDays = [ [1, 26, ''au''], [2, 6, ''nz''], [3, 17, ''ie''], [4, 27, ''za''], [5, 25, ''ar''], [6, 6, ''se''], [7, 4, ''us''], [8, 17, ''id''], [9, 7, ''br''], [10, 1, ''cn''], [11, 22, ''lb''], [12, 12, ''ke''] ]; function nationalDays(date) { for (i = 0; i < natDays.length; i++) { if (date.getMonth() == natDays[i][0] - 1 && date.getDate() == natDays[i][1]) { return [false, natDays[i][2] + ''_day'']; } } return [true, '''']; }


Todo está en la documentación. La función BeforeShowDay hará lo que quieras.

http://api.jqueryui.com/datepicker/#option-beforeShowDay

Mi uso fue días diferentes, pero terminé con beforeShowDay llamando a mi función de días límite

function limitDays(date){ var day = date.getDay(); // Only make Mon, Tues, and Thurs selectable if(day == 1 || day == 2 || day == 4){ return [true, '''']; }else{ return [false, '''']; } }