Практически там просто нужно, чтобы popover появлялся только после нажатия кнопки отправки, и в поле добавлен класс предупреждения.Получение проверки KnockoutJS с помощью Bootstrap Popover
Примечание: Hover работает только для IsValid истинно в связующем обработчике, в противном случае тестирования для не так требует щелчка, а не зависания: S
http://jsfiddle.net/hotdiggity/UUb4M/
HTML:
<input data-bind="value: lastName, popover: isValidField" data-placement="below" data-title="Alert" data-content="We have identified this information is incorrect and must be updated."/>
JS:
self.lastName = ko.observable().extend({ required: true });
self.isValidField = ko.observable();
this.submit = function() {
if (self.errors().length === 0) {
alert('Thank you.');
} else {
self.errors.showAllMessages();
self.isValidField(self.lastName.isValid());
}
};
Переплет:
ko.bindingHandlers.popover = {
init: function (element, valueAccessor, allBindingsAccessor) {
var value = valueAccessor(),
valueUnwrap = ko.unwrap(value),
allBindings = allBindingsAccessor(),
isValid = allBindings.value;
if (isValid) {
$(element).popover({
trigger: "hover"
});
} else {
$(element).popover("hide");
}
},
Update: //See jsfiddle link above (the same code)
Спасибо! Просто задайтесь вопросом, есть ли способ сделать привязку «popover: isValidField» проверять для поля, с которым он связан, вместо того, чтобы указывать каждое поле отдельно как функцию, то есть self.lastName.subscribe (function (val) ... – hotdiggity