将日期选择器设置为 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'
});
});
或者,如果只在单个元素上创建 datpicker,您可以 select 直接为 minDate
属性:
$("#datepicker").datepicker({
minDate: $("#datepicker").closest('p').data('minDate'),
dateFormat: 'yy-mm-dd'
});
我正在尝试在 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'
});
});
或者,如果只在单个元素上创建 datpicker,您可以 select 直接为 minDate
属性:
$("#datepicker").datepicker({
minDate: $("#datepicker").closest('p').data('minDate'),
dateFormat: 'yy-mm-dd'
});