根据一个日期选择器的选定日期设置多个日期选择器的值 [英] Set multiple datepickers' value based on one datepicker's selected date

查看:131
本文介绍了根据一个日期选择器的选定日期设置多个日期选择器的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经遵循jQuery UI Datepicker示例代码

 <!doctype html> 
< html lang =en>
< head>
< meta charset =utf-8>
< title> jQuery UI Datepicker - 默认功能< / title>
< link rel =stylesheethref =http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css>
< script src =http://code.jquery.com/jquery-1.9.1.js>< / script>
< script src =http://code.jquery.com/ui/1.10.3/jquery-ui.js>< / script>
< link rel =stylesheethref =/ resources / demos / style.css>
< script>
$(function(){
$(#datepicker1)。datepicker();
$(#datepicker1)。change(function(){
alert $(this).val());
var date = $(this).datepicker();
$(#datepicker2)。val(option,dd-mm-yy ,$(this).val());
// alert($(#datepicker2).val());
});
});
< / script>
< / head>
< body>
< p> Date1:​​< input type =textid =datepicker1>< / p>
< p> Date2:< input type =textid =datepicker2>< / p>
< p> Date3:< input type =textid =datepicker3>< / p>
< p> Date4:< input type =textid =datepicker4>< / p>
< / body>
< / html>

我想根据datepicker1中选择的值设置日期选择器2,3和4的值。 p>

如果#datepicker1有valud 12/05/2013,那么我想为每个其他jQuery datepickers显示+1日期,如下所示

  datepicker1 => 12/05/2013 then 
datepicker2 => 12/06/2013
datepicker3 => 12/07/2013
datepicker4 => 12/08/2013

我试过上面。



你可以帮忙吗?

解决方案

你可以使用 onSelect 事件并调用 setDate 方法:

  $(#datepicker1,#datepicker2,#datepicker3,#datepicker4)。datepicker(); 
$(#datepicker1)。datepicker(option,onSelect,function(dateText,inst){
var date1 = $ .datepicker.parseDate(inst.settings.dateFormat || $ .datepicker._defaults.dateFormat,dateText,inst.settings);

var date2 = new Date(date1.getTime());
date2.setDate(date2.getDate()+ 1 );
$(#datepicker2)。datepicker(setDate,date2);

var date3 = new Date(date1.getTime());
date3。 setDate(date3.getDate()+ 2);
$(#datepicker3)。datepicker(setDate,date3);

var date4 = new Date(date1.getTime ));
date4.setDate(date4.getDate()+ 3);
$(#datepicker4)datepicker(setDate,date4);
});

在此演示






onSelect 将日期作为字符串传递,以便我们将其转换为 JavaScript Date对象,使用以下jQuery UI datepicker实用功能:

  $。datepicker。 parseDate(format,value [,settings])

表达式:

  inst.settings.dateFormat || $ .datepicker._defaults.dateFormat 

意味着使用 dateFormat 在datepicker上指定的值,如果有的话;否则,请使用datepicker defaults(mm / dd / yy)中的 dateFormat


I have follow jQuery UI Datepicker sample code

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>jQuery UI Datepicker - Default functionality</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
    <link rel="stylesheet" href="/resources/demos/style.css">
    <script>
        $(function () {
            $("#datepicker1").datepicker();
            $("#datepicker1").change(function () {
                alert($(this).val());
                var date = $(this).datepicker();
                $("#datepicker2").val("option", "dd-mm-yy", $(this).val());
                //alert($( "#datepicker2" ).val());
            });
        });
    </script>
</head>
<body>
    <p>Date1: <input type="text" id="datepicker1"></p>
    <p>Date2: <input type="text" id="datepicker2"></p>
    <p>Date3: <input type="text" id="datepicker3"></p>
    <p>Date4: <input type="text" id="datepicker4"></p>
</body>
</html>

I want to set date pickers 2,3 and 4's value based on value selected in datepicker1.

Let say if #datepicker1 have valud 12/05/2013 then I would like to show +1 date for each other jQuery datepickers like below

datepicker1 => 12/05/2013 then
datepicker2 => 12/06/2013
datepicker3 => 12/07/2013
datepicker4 => 12/08/2013

I tried above.

Can you please help?

解决方案

You can use the onSelect event and call setDate method:

$("#datepicker1, #datepicker2, #datepicker3, #datepicker4").datepicker();
$("#datepicker1").datepicker("option", "onSelect", function (dateText, inst) {
    var date1 = $.datepicker.parseDate(inst.settings.dateFormat || $.datepicker._defaults.dateFormat, dateText, inst.settings);

    var date2 = new Date(date1.getTime());
    date2.setDate(date2.getDate() + 1);
    $("#datepicker2").datepicker("setDate", date2);

    var date3 = new Date(date1.getTime());
    date3.setDate(date3.getDate() + 2);
    $("#datepicker3").datepicker("setDate", date3);

    var date4 = new Date(date1.getTime());
    date4.setDate(date4.getDate() + 3);
    $("#datepicker4").datepicker("setDate", date4);
});

Demo here


The onSelect passes the date as a string so we convert it to JavaScript Date object for convenience, using the following jQuery UI datepicker utility function:

$.datepicker.parseDate( format, value[, settings] )

The expression:

inst.settings.dateFormat || $.datepicker._defaults.dateFormat

means use the dateFormat value specified on the datepicker, if there is one; otherwise use the dateFormat from datepicker defaults (which is "mm/dd/yy").

这篇关于根据一个日期选择器的选定日期设置多个日期选择器的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆