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
}
Другие вопросы по тегам