简体   繁体   English

如果开始日期 > 结束日期剑道日期选择器,则触发验证

[英]trigger Validation if Start Date > End Date kendo datepicker

I'm trying to modify my sample application using this Kendo demo我正在尝试使用此 Kendo 演示修改我的示例应用程序

在此处输入图片说明

<div class="form-group">
    @Html.LabelFor(model => model.StartDate, htmlAttributes: new { @class = "control-label col-md-2 k-label" })
    <div class="col-md-10">    
        @(Html.Kendo().DatePicker().Name("StartDate").Value(Model.StartDate).HtmlAttributes(new { style = "width:250px"}).Events(e => e.Change("startChange"))) 

        @Html.ValidationMessageFor(model => model.StartDate, "", new { @class = "text-danger" })
    </div>
</div>

<div class="form-group">
    @Html.LabelFor(model => model.EndDate, htmlAttributes: new { @class = "control-label col-md-2 k-label" })
    <div class="col-md-10">
        @(Html.Kendo().DatePicker().Name("EndDate").Value(Model.EndDate).HtmlAttributes(new { style = "width:250px"}).Events(e => e.Change("endChange")))               

        @Html.ValidationMessageFor(model => model.EndDate, "", new { @class = "text-danger" })
    </div>
</div>

<script>
    function startChange() {
        var endPicker = $("#EndDate").data("kendoDatePicker"),
            startDate = this.value();
        debugger;
        if (startDate) {
            startDate = new Date(startDate);
            startDate.setDate(startDate.getDate() + 1);
            endPicker.min(startDate);

            debugger;

            var endDateValue = endPicker.value();

            if (startDate > endDateValue)
            {
                debugger;
                var validator = $("#StartDate").kendoValidator({
                    rules:
                    {
                        datepicker: function (input)
                        {
                            var stDate = $("#StartDate").data("kendoDatePicker").value();
                            var enDate = $("#EndDate").data("kendoDatePicker").value();

                            if (stDate > enDate)
                            {
                                debugger;
                                return false;

                            } else {
                                return true;
                            }
                        }
                    },
                    messages: {
                        datepicker: "Start Date Should be less than End Date!"
                    }
                }).data("kendoValidator");
            }
        }
    }

    function endChange() {
        var startPicker = $("#StartDate").data("kendoDatePicker"),
            endDate = this.value();

        if (endDate) {
            endDate = new Date(endDate);
            endDate.setDate(endDate.getDate() - 1);
            startPicker.max(endDate);

            debugger;
            var startDateValue = startPicker.value();

            if (startDateValue > endDate) {
                debugger;
                var validator = $("#EndDate").kendoValidator({
                    rules: {
                        datepicker: function (input)
                        {
                            var stDate = $("#StartDate").data("kendoDatePicker").value();
                            var enDate = $("#EndDate").data("kendoDatePicker").value();

                            if (stDate > enDate)
                            {
                                debugger;
                                return false;
                            }
                            else
                            {
                                return true;
                            }
                        }
                    },
                    messages: {
                        datepicker: "End Date Should be greater than Start Date!"
                    }
                }).data("kendoValidator");
            }

        }
    }
</script>

In here I'm trying to add custom validation, if start date > end date在这里,我尝试添加自定义验证,如果开始日期 > 结束日期

This one working for initial changes, but after second change onwards validations not triggering, how can I trigger this validation properly这个适用于初始更改,但在第二次更改之后验证未触发,我如何正确触发此验证

You can achieve using jquery.您可以使用 jquery 来实现。 Please set the id or class name for that date picker and use below code请为该日期选择器设置 ID 或类名并使用以下代码

var inputdate1= $('#inputdateid1').data("kendoDatePicker").value();
var inputdate2= $('#inputdateid2').data("kendoDatePicker").value();
if (new Date(inputdate1) > new Date(inputdate2))
{
      alert(" Your alert message !");
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM