Событие изменения Kendo Datepicker не сработает, пока я не нажму за пределами элемента управления Datepicker
У меня есть следующая форма ASP.NET MVC с datepicker
изменить событие:
<div id="container">
@using (Html.BeginForm("Reload", "DateOfFile", FormMethod.Post, new { returnUrl = this.Request.RawUrl, id = "formDate" }))
{
@(Html.Kendo().DatePicker()
.Name("DateOfFile")
.Value(Session["DateOfFile"] == null ? DateTime.Now : Convert.ToDateTime(Session["DateOfFile"].ToString()))
.Events(e => e
.Change("dt_picker_change")
)
)
@Html.Hidden("returnUrl", this.Request.RawUrl)
<script>
function dt_picker_change() {
$("#container").kendoValidator({
rules: {
dateValidator: function (input) {
var value = $(input).val();
var date = kendo.parseDate(value);
//alert(date)
if (!date) {
return false;
}
$("#formDate").submit();
}
});
}
</script>
}
</div>
В приведенном выше коде форма отправляется только тогда, когда я щелкаю где-то за пределами элемента управления DatePicker, но ее нужно отправить, как только дата изменится в календаре.
Что мне не хватает?
1 ответ
Я предлагаю взять весь ваш блок кода "script" и поместить его ВНЕ вашего "div='container" ".
Вы пытались установить validateOnBlur: false на своем валидаторе и проверить вводные данные при изменении события?
<div id="container">
@using (Html.BeginForm("Reload", "DateOfFile", FormMethod.Post, new { returnUrl = this.Request.RawUrl, id = "formDate" }))
{
@(Html.Kendo().DatePicker()
.Name("DateOfFile")
.Value(Session["DateOfFile"] == null ? DateTime.Now : Convert.ToDateTime(Session["DateOfFile"].ToString()))
.Events(e => e
.Change("dt_picker_change")
)
)
@Html.Hidden("returnUrl", this.Request.RawUrl)
<script>
function dt_picker_change() {
$("#container").kendoValidator().data("kendoValidator").validate();
}
$("#container").kendoValidator({
validateOnBlur: false,
rules: {
dateValidator: function (input) {
var value = $(input).val();
var date = kendo.parseDate(value);
//alert(date)
if (!date) {
return false;
}
$("#formDate").submit();
}
});
</script>
}
</div>