将日期选择器设置为 jquery

set datepicker mindate with jquery

我正在尝试在 jquery-ui 日期选择器中设置一个 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 以查看日期选择器未考虑 minDate。

你能看出我做错了什么吗?

问题是因为 datepicker 初始化器范围内的 $(this) 不等于被 select 编辑的元素。要执行您需要的操作,您需要将 datepicker() 调用包装在 each() 中并遍历 selector:

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

Updated fiddle

或者,如果只在单个元素上创建 datpicker,您可以 select 直接为 minDate 属性:

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

Updated fiddle