当从JavaScript填充字段时,如何触发onchange方法?

当从JavaScript填充字段时,如何触发onchange方法?,javascript,openerp,odoo-9,odoo-10,odoo-view,Javascript,Openerp,Odoo 9,Odoo 10,Odoo View,问题很简单。我使用的是当我点击一个按钮时调用的特定API,一些字段是从我创建的小部件中填充的 我在系统中的多个位置使用该小部件 问题是,当这些字段被填充时,我需要 @api.onchange('exmplple') 方法来触发它们,但它没有(我会说这是一个bug) 当这些字段在我的小部件工作时发生更改时,触发该方法的变通方法或解决方案是什么 更新: 很抱歉,我的问题造成了混乱。我将试图解释我到底在想什么,以及为什么到目前为止我只尝试了服务器端的东西。问题是,在任何其他情况下,python代码a

问题很简单。我使用的是当我点击一个按钮时调用的特定API,一些字段是从我创建的小部件中填充的

我在系统中的多个位置使用该小部件

问题是,当这些字段被填充时,我需要

@api.onchange('exmplple')
方法来触发它们,但它没有(我会说这是一个bug)

当这些字段在我的小部件工作时发生更改时,触发该方法的变通方法或解决方案是什么

更新:

很抱歉,我的问题造成了混乱。我将试图解释我到底在想什么,以及为什么到目前为止我只尝试了服务器端的东西。问题是,在任何其他情况下,python代码api.onechange都可以完全正常工作

    @api.onchange
    def do_smth_when_country_changes(self):
            if country_id = 133
                    self.lang = 'pl_PL'
            elif:
                    .......more ifs
但我有一些字段是从GoogleMaps(我编写的JavaScript代码)填充的


在这里,当我用自动完成字段搜索地址,并单击其中一个时,country\u id字段将用country填充。还有一些其他字段必须在国家/地区id更改时更改值(例如res.partner字段lang)



由于PythonOnChange方法不会触发country_id字段,我认为JavaScript可能是解决我问题的唯一方法。所以我想做的是在特定的表单视图中访问字段coutry\u id(比如只在view\u partner\u表单中),以及当它更改lag字段的访问值时,也更改它。

您可以在动态值上使用jquery的“on”函数。文档:hey@enigmq的可能副本能否请您提供一个迄今为止您尝试过的代码示例?Hi@Hayko Koryun正如我提到的,我尝试过的是使用api.onchange,但它不起作用。我还尝试使用api.dependens执行此操作,此方法在单击“保存”后确实有效,但如果在填充字段后立即触发此方法,则会非常完美。是的@CZoellner是正确的,我认为客户端“更改”事件和服务器端“onchange”绑定之间存在混淆。我没有做过类似的事情,但是学习Odoo的js框架如何触发服务器端onchange函数以及如何在js代码中触发它可能是值得的。如果你不想那样做。在服务器上创建一个方法,并使用javascript
new Model('your_addon.Model_name')。调用('onchange_method_name',[args_here])
强制触发服务器端onchange。您可以对动态值使用jquery的“on”函数。文档:hey@enigmq的可能副本能否请您提供一个迄今为止您尝试过的代码示例?Hi@Hayko Koryun正如我提到的,我尝试过的是使用api.onchange,但它不起作用。我还尝试使用api.dependens执行此操作,此方法在单击“保存”后确实有效,但如果在填充字段后立即触发此方法,则会非常完美。是的@CZoellner是正确的,我认为客户端“更改”事件和服务器端“onchange”绑定之间存在混淆。我没有做过类似的事情,但是学习Odoo的js框架如何触发服务器端onchange函数以及如何在js代码中触发它可能是值得的。如果你不想那样做。在服务器上创建一个方法,并使用javascript
newmodel('your\u addon.Model\u name')。调用('onchange\u method\u name',[args\u here])
强制触发服务器端onchange。
            <field name='autocomplete' widget='gmap_autocomplete' country_id='country_id'>
            <field name='country_id'>
    <field name='lang'/>