Kendo Popup Editor, сообщение об ошибке проверки

У меня есть всплывающий редактор кендо для моей группы кендо.

Если есть ошибки проверки, когда пользователь нажимает кнопку «Обновить», я хотел бы выполнить действие jquery.

Я использовал функцию onSave для этого:

function onSave(e) {
        alert("you've clicked save")
}

Однако функция вызывается только тогда, когда в поле нет сообщения об ошибке проверки. Как я могу вызвать функцию, когда пользователь нажимает «Сохранить» и появляется сообщение проверки.

Спасибо


person mgh75    schedule 11.01.2018    source источник
comment
Создайте рабочую демонстрацию своего кода на jsfiddle и укажите ссылку в своем вопросе.   -  person Rahul Gupta    schedule 11.01.2018
comment
Я не могу, так как использую кендо для mvc, поэтому не могу настроить источник данных.   -  person mgh75    schedule 11.01.2018
comment
Только в демонстрационных целях вы можете изменить этот DEMO здесь jsfiddle.net/phpdeveloperrahul/p2xnxqf9 таким образом, чтобы описывает вашу проблему   -  person Rahul Gupta    schedule 11.01.2018
comment
Ваша демо-версия точно такая же, как у меня сейчас. Однако я хочу, чтобы в окне предупреждения отображалось только то, является ли ошибка проверки на экране.   -  person mgh75    schedule 11.01.2018
comment
Какие поля ввода и правила проверки у вас есть? Вы можете изменить приведенную выше DEMO и предоставить новую ссылку.   -  person Rahul Gupta    schedule 11.01.2018
comment
Так же, как и у вас, я не уверен, что это имеет значение? Нет ли события onValidationError, которое я мог бы использовать?   -  person mgh75    schedule 11.01.2018


Ответы (1)


Я создал эту DEMO.

В этой ДЕМО есть:

  • Пользовательская форма редактора всплывающих окон
  • Пользовательский Kendo Validator для проверки пользовательских правил в полях формы.
  • Проверяет форму на корректность данных по save событию кендогрида
  • Отображает сообщения об ошибках проверки в предупреждении и предотвращает отправку формы

Вот фрагмент кода:

$("#grid").kendoGrid({
....
...
save: function(e) {
        alert('Popup form save event fired! Now validate the popup form for proper data');
      if (validateForm()) {//if form validation is successful
        alert("Form validation is successful");
        e.preventDefault();//This code line must be removed for successful form submission. It is kept here only for demonstration purpose
      }
      else {
        //Form validation failed
        e.preventDefault();//So prevent form submission
      }
    }
....
...

function validateForm()
{
    var validator = $("#popupForm").kendoValidator({
    rules: {
        minlength: function(input) {
        //only address will be validated
        if (input.is("[name=address]")) {
          if (input.val().length < 4)
            return false;
        }
        return true;
      },
      checkcity: function(input) {
        //only city will be validated
        if (input.is("[name=city]")) {
          if (input.val() != "ABC")
            return false;
        }
        return true;
      }
    },
    messages: {
        minlength: "Min length required is 4",
      checkcity: "City name must be ABC"
    }
  }).data("kendoValidator");

  if (validator.validate()) {
    return true;
  } 
  else {
    alert("Oops! There is invalid data in the form.\n"+validator.errors());
    return false;
  }

}
person Rahul Gupta    schedule 11.01.2018
comment
Спасибо, но это, кажется, не работает. Я использую Kendo не для jQuery, а для MVC, поэтому моя сетка использует Razor Engine. - person mgh75; 11.01.2018
comment
Вот почему я попросил вас показать код. Вы упомянули что-нибудь о Razor в своем вопросе. Вы должны были описать свой вопрос так, чтобы такие помощники, как я, не вводили в заблуждение. - person Rahul Gupta; 11.01.2018
comment
Пожалуйста, рассмотрите возможность поставить +1 за усилия, которые я приложил до сих пор - person Rahul Gupta; 11.01.2018