Недавно я создал обработчик привязки для включения плагина JQuery Validation в форму с использованием синтаксиса привязки данных. Я обнаружил, что мне нужно предоставить больше информации для обработчика. Мне нужно было предоставить флаг для принудительной проверки и обратного вызова для пожара после прохождения проверки.
Вопросы:
-
Какова наилучшая практика для подачи нескольких аргументов? Я просто полагался на синтаксис нотации объектов, но мог также предоставить другое связывание и проверить, что привязка через параметр "allBindings" передается обработчику...
-
Какова наилучшая практика для предоставления функции обратного вызова обработчику?
Ниже приведен код js, определяющий обработчик и html-код для применения обработчика:
<form id="step1"
data-bind="jqValidation:{enforce: true,
submitHandler: doSomethingInVM}">
<fieldset data-bind="with:searchRequest">
//fields
</fieldset>
<button type="submit">submit</button>
</form>
ko.bindingHandlers.jqValidation = {
update: function (element, valueAccessor, allBindingsAccessor, viewModel) {
var accessor = valueAccessor();
//need unwrapobservable??
if (accessor.enforce) {
$(element).find(':submit').removeClass('cancel');
$(element).validate({
submitHandler: function () {
if ($.isFunction(accessor.submitHandler))
accessor.submitHandler();
}
});
} else
$(element).find(':submit').addClass('cancel');
}
};