Проверка формы knockout.js?
Я использую knockout.js в моем проекте ASP.NET MVC. Я понял, как отображать форму, сериализовать объект JSON и отображать данные с помощью следующей ссылки:
Как использовать knockout.js с ASP.NET MVC ViewModels?
Но я не могу понять, как проверить форму. Какое наилучшее решение для проверки формы?
Ответы
Ответ 1
Я использовал его плагин Knockout.Validation(https://github.com/Knockout-Contrib/Knockout-Validation), который работал хорошо. Он использует расширители в Knockout, поэтому вы можете расширить свойства модели, чтобы включить такие правила, как требуемые, минимальные, максимальные или совпадения шаблонов. Вы также можете создавать собственные правила. Например, я создал один для URL-адреса. У него есть встроенное правило для таких вещей, как электронная почта. Все это находится на странице github в документах. У него есть все необходимое для начала работы.
Другой вариант - использовать проверку jquery, которая также хорошо работает.
Ответ 2
Попробуйте плагин Knockout.Validation:
https://github.com/Knockout-Contrib/Knockout-Validation
Ответ 3
Хотя ответ принят, но я хотел бы поделиться своим приложением. Я предпочитаю комбинировать jquery с knockout.js и применять jQuery Validation plugin, который очень подходит для ненавязчивой проверки на стороне клиента. Он работает до отправки формы и принимает форму как входной параметр.
Что-то вроде этого:
function ViewModel() {
var self = this;
self.firstName = ko.observable();
self.lastName = ko.observable();
self.email = ko.observable();
self.validate = function(form) {
return $(form).validate();
};
};
var viewModel = new ViewModel();
ko.applyBindings(viewModel);
Вызывается функция validate(). Если проверка завершается успешно, форма будет отправлена, в противном случае будет отображаться ошибка.