javascript - jQuery Datepicker - 根据选择的选项刷新可选择的日期

标签 javascript jquery datepicker

我有一个选择框,用户可以在其中选择 3 家不同的商店。不应为商店 2 和 3 选择周末,而对于商店 1,您应该只能选择周一至周六。

以下 javascript 仅适用于第一个选择。如果您之后立即选择另一家商店,它将保留旧选项。

我试过使用 $( "#datepicker").datepicker("refresh"); (参见 how to refresh datepicker? )但没有成功。我开始认为问题出在其他地方。

Javascript:

$(function() {

  var setting, currentShop = 0;

  /* Select box */

  $('select#shop').change(function() {
    (currentShop = $(this).val() == 1) ? loadDatePicker(setting = 'noSunday') : loadDatePicker(setting = 'noWeekends');
  });

  /* Datepicker */

  function noSunday(date){ 
    var day = date.getDay(); 
    return [(day > 0), '']; 
  }

  function loadDatePicker(setting) {
    if(setting == 'noWeekends') {
      $( "#datepicker" ).datepicker({ beforeShowDay: $.datepicker.noWeekends, minDate: +2, maxDate: "+1M" }); 
    }
    if(setting == 'noSunday') {
      $( "#datepicker" ).datepicker({ beforeShowDay: noSunday, minDate: +2, maxDate: "+1M" }); 
    }
    $( "#datepicker" ).datepicker("refresh");
  }
});

HTML:

  <select id="shop" name="shop">
    <option value="0" selected="selected">Choose a shop</option>
    <option value="1">1 (closed sundays)</option>
    <option value="2">2 (closed weekends)</option>
    <option value="3">3 (closed weekends)</option>
  </select>
  <label for="datepicker">Datepicker</label><input type="text" name="date" id="datepicker" value="" readonly="readonly" />

J fiddle : http://jsbin.com/ajavek/1/edit

如何使用日期选择器正确刷新/应用设置?

最佳答案

看到这个: DEMO

  function loadDatePicker(setting) {
    $("#datepicker").datepicker("destroy");
    if(setting == 'noWeekends') {
      $( "#datepicker" ).datepicker({ beforeShowDay: $.datepicker.noWeekends, minDate: +2, maxDate: "+1M" }); 
    }
    else if(setting == 'noSunday') {
      $( "#datepicker" ).datepicker({ beforeShowDay: noSunday, minDate: +2, maxDate: "+1M" }); 
    }
    $( "#datepicker" ).datepicker("refresh");
  }

每次更改设置之前,您都需要输入 $("#datepicker").datepicker("destroy");...

关于javascript - jQuery Datepicker - 根据选择的选项刷新可选择的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15296463/

相关文章:

javascript - 一个 Next.js 路由中的两个不同子域

jQuery Chosen 插件定制

jQuery 数据表从所选选项列排序和排序

javascript - 有没有轻量级的 JavaScript 日期选择器?

.net - 如何设置 DatePicker 的样式?

javascript - 无法使用 jQuery UI 的日期选择器比较日期

javascript - 太多的 if-else 语句。它们可以全局化吗?

javascript - 使用 Node JS 客户端从 Elasticsearch 索引中提取最重要的单词

javascript - 在传单中的 map 上显示栅格数据

javascript - 如何强制用户按顺序点击div?