在开始日期值更改,通过JavaScript添加2年到结束日期

时间:2015-09-14 13:45:26

标签: javascript jquery asp.net-mvc

在我的MVC应用程序的View Model类中,我有两个felds开始日期和结束日期。

public class MyClass
{
   public DateTime StartDate {get;set;}
   public DateTime EndDate {get;set}
}

以下是视图中的代码段

 @Html.Kendo().DatePickerFor(m => m.StartDate)
 @Html.Kendo().DatePickerFor(m => m.EndDate)

为StarDate和EndDate生成的ID和名称是" StartDate" &安培; "结束日期"分别

每当StartDate的值发生变化时,我希望我的EndDate值为StartDate + 2年 所以基本上EndDate = StartDate + 2年 这就是我现在所拥有的

<script>
    $("#StartDate").on('change',function() {
        var value = $("#StartDate").val();
        $("#EndDate").val() = value;
    });
</script>

我已经陷入了尝试在行

中将EndDate值设置为StartDate的问题
 $("#EndDate").val() = value;

我收到错误"L-value is expected"

那么,是否有一些简单的方法来实现我解释的结果?

我在文本框中的日期格式是 2015年9月17日

3 个答案:

答案 0 :(得分:0)

您只是在寻找

$("#EndDate").val(value);

阅读手册可以快速解决这个问题。

通过

$("#EndDate").val() = value;

您尝试调用某个方法,然后为结果分配一个没有意义的值,从而导致您获得的错误。

答案 1 :(得分:0)

  1. 请尝试$("#EndDate").val(value);而不是$("#EndDate").val() = value;

  2. 对于日期格式9/17/2015,您可以通过以下方式获取EndDate值:

    var m = value.match(new RegExp(&#34;(\\ d + / \\ d + /)(\\ d +)&#34;));

    var endDateValue = m [1] +(parseInt(m [2])+ 2);

答案 2 :(得分:0)

这样可行:

           <script>
                $("#StartDate").on('change',function() {
                    var value = $("#StartDate").val();
                   //assuming value in format of 12/01/2001 or 12/02/15
                    var current = value.slice(-2) //this gets the current year - "15"
                    var years = 2;
                    current = parseInt(current) + years // 15+2
                    value = value.slice(0,-2) //12/02/
                    value = value.toString().concat(current) //12/02/17

                    $("#EndDate").val(value); //this is how u set the value
                });
            </script>