propiedades ocultar limitar hora hasta fechas example español desde bootstrap bloquear jquery twitter-bootstrap datepicker bootstrap-datepicker

jquery - ocultar - ¿Limitar bootprap-datepicker a días laborables solamente?



limitar datepicker jquery (4)

** ACTUALIZACIÓN **

Bootstrap datepicker ahora tiene una opción daysOfWeekDisabled . Ver la respuesta de @ fin a continuación.

** ANTIGUA RESPUESTA **

Aquí hay una demostración de trabajo.

Suponiendo que tus semanas comiencen el domingo:

$(function() { function disableWeekends($this) { var $days = $this.find(''.datepicker-days tr'').each(function() { var $days = $(this).find(''.day''); $days.eq(0).addClass(''old'').click(false); //Sunday $days.eq(6).addClass(''old'').click(false); //Saturday }); } $(''#dp1'').datepicker({ format: ''mm-dd-yyyy'' }); // get instance of the jQuery object created by // datepicker var datepicker = $(''#dp1'').data(''datepicker'').picker; // disable weekends in the pre-rendered version disableWeekends(datepicker); // disable weekends whenever the month changes var _fill = datepicker.fill; datepicker.fill = function() { _fill.call(this); disableWeekends(this.picker); }; });​

Si no, simplemente cambie $ days.eq (...) a los índices correctos.

Por supuesto, esto solo cubre el evento de clic y te lleva en la dirección correcta. Estoy bastante seguro de que otras cosas, como la navegación con el teclado, deben abordarse.

EDITAR

Para la última versión use este código donde sea apropiado

// get instance of the jQuery object created by datepicker     var datepicker = $(''#dp1'').data(''datepicker''); // disable weekends in the pre-rendered version disableWeekends(datepicker.picker); // disable weekends whenever the month changes var _fill = datepicker.fill; datepicker.fill = function() {{ _fill.call(this); disableWeekends(datepicker.picker); }};

¿Hay alguna forma de permitir solo las selecciones de día de la semana en el selector de fecha de arranque encontrado a continuación? https://github.com/eternicode/bootstrap-datepicker/

Estoy creando una instancia del selector de fecha de esta manera:

$(''#datepicker'').datepicker(); /* Update datepicker plugin so that MM/DD/YYYY format is used. */ $.extend($.fn.datepicker.defaults, { parse: function (string) { var matches; if ((matches = string.match(/^(/d{2,2})//(/d{2,2})//(/d{4,4})$/))) { return new Date(matches[3], matches[1] - 1, matches[2]); } else { return null; } }, format: function (date) { var month = (date.getMonth() + 1).toString(), dom = date.getDate().toString(); if (month.length === 1) { month = "0" + month; } if (dom.length === 1) { dom = "0" + dom; } return month + "/" + dom + "/" + date.getFullYear(); } });

Gracias por cualquier ayuda.


La última versión de https://github.com/eternicode/bootstrap-datepicker ya tiene una opción para deshabilitar la selección de días de la semana en particular. De los documentos :

daysOfWeekDisabled

Cuerda, Array. Defecto: '''', []

Días de la semana que deben ser desactivados. Los valores son 0 (domingo) a 6 (sábado). Los valores múltiples deben estar separados por comas. Ejemplo: deshabilitar los fines de semana: ''0,6'' o [0,6] .

En otras palabras, simplemente cree una instancia de su selector de fechas de esta manera:

$(''#datepicker'').datepicker({ daysOfWeekDisabled: [0,6] });

Aquí hay un jsfiddle que demuestra esto: http://jsfiddle.net/vj77M/1/


También puedes probarlo.

onRender: function(date) { return date.getDay() == 0 || date.getDay() == 6 ? ''disabled'' : ''''; }

Espero que ayude a alguien. :)


$(document).ready(function(){ var date_input=$(''input[name="date"]''); var container=$(''.bootstrap-iso form'').length>0 ? $(''.bootstrap-iso form'').parent() : "body"; date_input.datepicker({ format: ''dd/mm/yyyy'', container: container, weekStart: 0, daysOfWeekDisabled: "0,1,2,3,4,5", daysOfWeekHighlighted: "6", todayHighlight: true, autoclose: true, }) })