JSView - Установить триггер, когда теряет фокус, на пользовательский тег
Я пытаюсь определить пользовательский тег для элементов ввода, который срабатывает только тогда, когда элемент ввода теряет фокус. Когда он срабатывает, он должен изменить элемент, связанный с данными. Манипулирование данными работает на AfterfterChange.
//jsview html tag
<script id="input_text_layout" type="text/x-jsrender">
<input type="text" data-link="{:value:} {testvalidation value}">
</script>
//jQuery Part
$.views.tags({
testvalidation: {
baseTag: "radiogroup",
linkedElement: "select,textarea,input",
init: function(tagCtx, linkCtx, ctx) {
var tag = this;
},
onAfterChange : function(ev, eventArgs) {
$.observable(this.linkCtx.view.data).setProperty("info_text", "Testinformation");
}
}
});
})(this.jQuery);
1 ответ
Решение
Вы можете установить trigger=false
если вы хотите, чтобы обновления запускались при размытии, а не при нажатии клавиш / вводе. Параметр может быть глобальным, для отдельного тега или в определении тега.
Увидеть
настройка trigger=false
на определение тега для пользовательского тега выглядит так (ваш тег):
testvalidation: {
linkedElement: "input",
trigger: false,
onAfterChange : function(ev, eventArgs) {
$.observable(this.linkCtx.view.data).setProperty("info_text", "Testinformation");
}
}
или этот из http://www.jsviews.com/#samples/tag-controls/simple-textbox:
textbox: {
linkedElement: "input",
template: "<input/>",
onUpdate: false,
trigger: false,
dataBoundOnly: true
}