Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ui JQueryUI使用select元素值设置日期选择器默认日期_Jquery Ui_Select_Datepicker - Fatal编程技术网

Jquery ui JQueryUI使用select元素值设置日期选择器默认日期

Jquery ui JQueryUI使用select元素值设置日期选择器默认日期,jquery-ui,select,datepicker,Jquery Ui,Select,Datepicker,我有一个日期选择器,我想使用select元素为从今天开始的6个月、12个月、24个月或60个月设置defaultDate参数 我遇到了麻烦,因为我使用select元素更改了selected选项,而select元素的值在DOM中没有更新,所以datepicker使用了与页面一起加载的selected值 我在这里做了一把小提琴,所以你可以看到我指的是什么 <form> <select name="Interval" id="Interval"> <option

我有一个日期选择器,我想使用select元素为从今天开始的6个月、12个月、24个月或60个月设置defaultDate参数

我遇到了麻烦,因为我使用select元素更改了selected选项,而select元素的值在DOM中没有更新,所以datepicker使用了与页面一起加载的selected值

我在这里做了一把小提琴,所以你可以看到我指的是什么

<form>
<select name="Interval" id="Interval">
    <option value="6">6 Months</option>
    <option value="12">12 Months</option>
    <option value="24">2 Years</option>
    <option value="60">5 Years</option>
</select>
<input type="text" class="date" placeholder="dd/mm/yyyy"></input>
日期选择器的默认日期为“+6m”,但如果将select更改为12个月,则日期选择器仍使用6个月。我希望它使用defaultDate:“+12m”更新日期选择器

有人能看到是什么让这起作用吗

谢谢
Greg

更改
select
的值只会在您告诉日期选择器更改时影响日期选择器。否则,它将永远不会知道更改,因为您使用起始值设置了一次

$("#Interval").on("change", function() {
    $(".date").datepicker("option", "defaultDate", "+" + $(this).val() + "m");
});
或者,您可以传递一个对象,以防需要发送多个值:


谢谢,但似乎不起作用。我认为这样做是有道理的,因为它试图更改.date元素上的选项,而不是datepicker函数本身,对吗?在这里用你的建议更新了JSFIDLE。默认值不变。很抱歉,我在
日期选择器
中错误使用了
选项
方法。我更新了示例以反映适当的用法。太棒了!非常感谢你的帮助。
$("#Interval").on("change", function() {
    $(".date").datepicker("option", "defaultDate", "+" + $(this).val() + "m");
});
$("#Interval").on("change", function() {
    $(".date").datepicker("option", { defaultDate: "+" + $(this).val() + "m" });
});