在初始化时将数据属性添加到jquery ui datepicker

时间:2016-03-07 15:40:14

标签: jquery jquery-ui jquery-ui-datepicker custom-data-attribute

我正在初始化jquery ui的datepicker如下:

var datesArray=['3/7/2016','3/12/2016']
$('#datepicker').datepicker({
    inline: true,
    beforeShowDay: function (date) {
        var theday = (date.getMonth()+1) +'/'+ 
            date.getDate()+ '/' + 
            date.getFullYear();
        return [true,$.inArray(theday, datesArray) >=0 ? "specialDate":''];
    }
});

这会创建一个日历,其中specialDate类应用于datesArray中的所有日期。

此外,我需要在初始化datepicker时向这些相同的日期添加一个唯一的数据属性值(类似data-value="39"),但我不知道如何选择日期。

我可以使用像

这样的东西
var datavalues = {
    "3/7/2016" : "38",
    "3/12/2016" : "39"
};

其中3839data-value s。

关于adding a custom parameter的这个问题让我很接近,但我不确定如何使用它来在创建时添加数据属性。

1 个答案:

答案 0 :(得分:1)

创建日期选择器时,您无法使用.data()或数据属性执行此操作。你可以这样使用onSelect

工作示例:https://jsfiddle.net/ha5zgvby/

<强> HTML

<p>Date:
  <input type="text" id="datepicker" />
</p>
<p>Stuff:
  <input type="text" id="special" />
</p>

<强> JQuery的

var datavalues = {
  "03/07/2016": "38",
  "03/12/2016": "39"
};
$(function() {
  var $result = $("#special");
  $('#datepicker').datepicker({
    inline: true,
    onSelect: function(dt, obj) {
      $result.val(datavalues[dt]);
    },
    altField: "#result"
  });
});

选择日期时,会向函数传递所选的值。如果该值在您的对象中作为索引,那么您可以以某种方式使用它。