使用jquery设置datepicker

时间:2015-03-23 15:33:18

标签: jquery jquery-ui datepicker

我正在尝试在jquery-ui datepicker中设置minDate。使用jquery从父节点的数据属性中检索日期。

<p data-min-date="2015-03-10">Date:
    <input id="datepicker" type="text">
</p>
<script>
    $("#datepicker").datepicker({
        minDate: $(this).closest('p').data('minDate'),
        dateFormat: 'yy-mm-dd'
    });
</script>

您可以查看此fiddle以查看datepicker是否考虑了minDate。

你能发现我做错了吗?

1 个答案:

答案 0 :(得分:2)

问题是因为$(this) intialiser范围内的datepicker不等于所选的元素。要执行您需要的操作,您需要将datepicker()调用包装在each()中并迭代选择器的每个元素:

$("#datepicker").each(function() {
    $(this).datepicker({
        minDate: $(this).closest('p').data('minDate'),
        dateFormat: 'yy-mm-dd'
    });
});

Updated fiddle

或者,如果只在单个元素上创建数据选择器,则可以直接为minDate属性选择它:

$("#datepicker").datepicker({
    minDate: $("#datepicker").closest('p').data('minDate'),
    dateFormat: 'yy-mm-dd'
});

Updated fiddle