【发布时间】:2018-09-10 09:33:39
【问题描述】:
我刚刚意识到default_focus="1" 不适用于瞬态模型视图中的字段(至少是用target="new" 打开的字段)。而autofocus="autofocus",我认为它应该只与buttons 或pages 一起使用,适用于那些瞬态模型字段,但仅在您第一次打开视图时。除非您重新加载浏览器,否则它无法再次工作。
在我的例子中,我为 Char 字段(在瞬态模型内)做了一个小部件,并且每次打开弹出窗口时我都需要关注这个字段。由于我无法通过 XML 来完成,我正在尝试在 JavaScript 中完成。
这是我的小部件的 XML 模板,它继承自 FieldChar:
<t t-name="FieldRed" t-extend="FieldChar">
<t t-jquery="input" t-operation="attributes">
<attribute name="id">barcode_input</attribute>
<attribute name="class">o_form_input bg-red</attribute>
</t>
</t>
现在,我的小部件的 JS 代码。我试图将其集中在start 方法中,因为它是渲染后执行的第一个方法:
start: function() {
console.log('START');
this._super.apply(this, arguments);
this.$el.parent().find('input').focus();
},
但这不起作用。我也试过:
this.setupFocus(this.$el.parent().find('input'));
但是什么也没发生。但是,如果我包括这一行,例如,该字段会自动填写,正如预期的那样:
this.$el.parent().find('input').val('START');
所以我的问题是:
如何在每次打开表单时聚焦小部件的input 字段?
【问题讨论】:
标签: javascript xml focus odoo odoo-10