Показывать активную дату в ограничителе диапазонов даты jQuery

У меня есть динамический календарь на jQuery, в котором я отключаю определенные дни, в зависимости от текущего дня. И если это пятница, суббота или воскресенье, я отключаю всю последующую неделю.

Проблема в том, что мне нужно показать дату, которая остается активной, чтобы выбрать в textbox.

Мой код:

<!-- CSS -->
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.0/themes/base/jquery-ui.css">
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/timepicker/1.3.5/jquery.timepicker.min.css">

<!-- JS --> 
<script src="//code.jquery.com/jquery-1.12.4.js"></script>
<script src="//code.jquery.com/ui/1.12.0/jquery-ui.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/timepicker/1.3.5/jquery.timepicker.min.js"></script>

<?php

    /*
    dias de la semana en numero
    0-> domingo
    6-> sabado
    */

    $dia = intval(date("w"));

    switch ($dia) {

        case 1:
            $dias = 7;
            $date = "";
        break;

        case 2:
            $dias = 6;
            $date = "";
        break;

        case 3:
            $dias = 5;
            $date = "";
        break;

        case 4:
            $dias = 4;
            $date = "";
        break;

        // viernes
        case 5:
            $dias = 10;
            $date = "";
        break;

        // sabado
        case 6:
            $dias = 10;
            $date = "";
        break;

        // domingo
        case 0:
            $dias = 10;
            $date = "";
        break;

    }
?>

<table border="1" align="center" class="sample">
    <tr style="height:25px">
        <th width="20%"  align="LEFT" >&nbsp;Fecha: &nbsp;&nbsp;</th>
        <td>
            <input type="text" id="txt_fecha" name="txt_fecha" readonly="1" value="">
        </td>
        <input type="hidden" id="nro_dia" name="nro_dia" value="<?php echo $dias; ?>" />
    </tr>
</table>

<script type="text/javascript">

    $(function() {

        //Array para dar formato en español
        $.datepicker.regional["es"] = {
            closeText: "Cerrar", 
            prevText: "Previo", 
            nextText: "Próximo",
            monthNames: ["Enero","Febrero","Marzo","Abril","Mayo","Junio", "Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],
            monthNamesShort: ["Ene","Feb","Mar","Abr","May","Jun", "Jul","Ago","Sep","Oct","Nov","Dic"],
            monthStatus: "Ver otro mes",
            yearStatus: "Ver otro año",
            dayNames: ["Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado"],
            dayNamesShort: ["Dom","Lun","Mar","Mie","Jue","Vie","Sáb"],
            dayNamesMin: ["Do","Lu","Ma","Mi","Ju","Vi","Sa"],
            dateFormat: "dd/mm/yy",
            firstDay: 0, 
            initStatus: "Selecciona la fecha",
            isRTL: false
        };

        $.datepicker.setDefaults($.datepicker.regional["es"]);

        //miDate: fecha de comienzo D=días | M=mes | Y=año
        //maxDate: fecha tope D=días | M=mes | Y=año

        $("#txt_fecha").focusin(function () {
            var dias = $("#nro_dia").val();
            var maxDate_d = dias+"D";
            //alert(date);
            $("#txt_fecha" ).datepicker({
                dateFormat: "yy-mm-dd",
                firstDay: 1,
                minDate: maxDate_d
            });
        });

    });
</script>

Поле txt_fecha должно показывать активную дату, оставшуюся после отключения дней, понимаете?

-2
задан 05.05.2017, 15:34
2 ответа

Только ты должен применять mГ©todo setDate () despuГ©s инициализирования datePicker, с той же переменной, которую ты использовал для свойства minDate:

    $( "#txt_fecha" ).datepicker({
        dateFormat: "yy-mm-dd",
        firstDay: 1,
        minDate: maxDate_d
    });
    $("#txt_fecha").datepicker("setDate", maxDate_d);
0
ответ дан 24.11.2019, 13:41
  • 1
    Ло habí в попробованный, но загрузь дату в поле в момент кликания и не нагрузив. Я это сделал с PHP, pondré ' como' скоро для того, чтобы они это увидели =) – x_Mario 09.08.2016, 16:46
  • 2
    Ясно окажись одиноким в момент кликания, потому что así está твой có я говорю, ты считаешь это связанным с событием focusin. Вопрос не определяет, в котором момент ты хочешь показать это, así что asumí что оставшаяся часть có я говорю, что он пребывает равным. – Shaz 09.08.2016, 16:49

Я это попробовал нескольких способов, включая как он это показывает @Shaz (благодарный за твой ответ.)

В ней secciГіn PHP в начало, где у меня есть переключатель, вступил в брак, я это оставил asГ-;

<?php
/*
dias de la semana en numero
0-> domingo
6-> sabado
*/
$dia=intval(date('w'));
// echo "dia:".$dia."\n";
$today=date('Y-m-d');

switch($dia){
    case 1:
        $dias=7;
    break;

    case 2:
        $dias=6;
    break;

    case 3:
        $dias=5;
    break;

    case 4:
        $dias=4;
    break;
    // viernes
    case 5:
        $dias=10;
    break;
    // sabado
    case 6:
        $dias=10;
    break;
    // domingo
    case 0:
        $dias=10;
    break;
}
$date=date('Y-m-d', strtotime('+'.$dias.' day',strtotime($today)));
?>

... и HTML я у себя остаюсь asГ-;

<table border="1" align="center" class="sample">
<tr style="height:25px">
    <th width="20%"  align="LEFT" >&nbsp;Fecha: &nbsp;&nbsp; </th>
    <td><input type='text' id='txt_fecha' name='txt_fecha' readonly='1' onChange="BuscarActividades(this.value);" value='<?php echo $date; ?>'></td>
    <input type="hidden" id="nro_dia" name="nro_dia" value="<?php echo $dias; ?>" />
</tr>
</table>

Из этой формы, загрузив сайт в поле, датирует, показывает активную последующую дату правило restricciГіn, которого требуют.

СПАСИБО!!

0
ответ дан 24.11.2019, 13:41