JSView - 在失去焦点时将触发器设置在自定义标签上

时间:2018-03-06 20:17:50

标签: jquery jsviews lost-focus custom-tag

我正在尝试为input-elements定义一个自定义标记,只有当input-element失去焦点时才会触发。 当它触发时,它应该修改数据链接的项目。 数据操作正在进行后更改。

//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 个答案:

答案 0 :(得分:1)

如果您希望在模糊事件上触发更新,而不是在keydown / input上触发更新,则可以设置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
}