Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

282
Vistas
Deshabilitar fines de semana y fechas específicas jQueryUI datepicker

Quiero deshabilitar los fines de semana en el selector de fechas, así como las fechas específicas que estarán en una matriz. He notado que no puedo combinar estas 2 opciones en beforeShowDay ya que solo acepta 1 función. ¿Hay alguna manera de agregar 2 funciones en beforeShowDay ?

 $(function() { var unavailableDates = ["27-12-2021", "28-12-2021", "29-12-2021", "30-12-2021", "31-12-2021", "01-01-2022", "02-01-2022", "03-01-2022", "04-01-2022"]; function unavailable(date) { dmy = date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getFullYear(); if ($.inArray(dmy, unavailableDates) == -1) { return [true, ""]; } else { return [false, "", "Unavailable"]; } } $("#datepicker").datepicker({ dateFormat: "dd-mm-yy", changeMonth: false, changeYear: false, minDate: '10D', beforeShowDay: $.datepicker.noWeekends, unavailable // throws an error becaus ei have 2 options }); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <script src="https://code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script> <link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" /> <input type="text" id="datepicker" />

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El problema se debe a que la propiedad beforeShowDay solo acepta una sola función.

Para hacer lo que necesita, puede crear una función anónima en la que llame a las funciones noWeekends() y unavailable() y combine el resultado, así:

 jQuery($ => { let unavailableDates = ["27-12-2021", "28-12-2021", "29-12-2021", "30-12-2021", "31-12-2021", "01-01-2022", "02-01-2022", "03-01-2022", "04-01-2022"]; let isUnavailable = date => $.inArray(`${date.getDate()}-${(date.getMonth() + 1)}-${date.getFullYear()}`, unavailableDates) >= 0; $("#datepicker").datepicker({ dateFormat: "dd-mm-yy", changeMonth: false, changeYear: false, minDate: '10D', beforeShowDay: date => { if (isUnavailable(date) || !$.datepicker.noWeekends(date)[0]) { return [false, "", "Unavailable"]; } else { return [true, ""]; } } }); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <script src="https://code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script> <link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" /> <input type="text" id="datepicker" />

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda