Odoo中文社区可以通过以下两个域名访问:shine-it.net , odoo.net.cn

由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解

本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

Odoo 12 自定义按钮事件



  • 以下代码用来在Form里面增加一个自定义按钮,触发JS代码。在Odoo V10 里面是可用的,但是放到Odoo V12里面就不生效了。折腾了两天,没搞定,请高手指点一下,该怎么修改。

    模块配置文件 manifest.py 加了如下:

    'js': [
            'static/src/js/mm_wlpz.js',
        ] ,
    

    XML文件代码里加了按钮:

    <button string="选取库存" custom="mm_wlpz_jsck_click"/>
    

    JS文件写了触发的事件:

    odoo.define('x_ds.mm_wlpz_js', function (require) {
        "use strict";
    
        var form_widget = require('web.form_widgets');
        var core = require('web.core');
        var _t = core._t;
    
        form_widget.WidgetButton.include({
            on_click: function () {
    
                alert( 'on_click ' )
                if (this.node.attrs.custom === "mm_wlpz_jsck_click") {  
                    //console.log(this)
                    this.field_manager.fields.check_jskc.set_value(true)
                    return;
                }
            } ,
    
        });
        
    });
    


  • 试了下面这个方法可以触发事件,就是更改了“check_jskc”字段的值后,Web页面上没有跟着改过来,求解。

    odoo.define('x_ds.mm_wlpz_js', function (require) {
        "use strict";
    
        var FormController = require('web.FormController');
    
        FormController.include({
            _onButtonClicked: function (event) { 
    
                if(event.data.attrs.custom === "mm_wlpz_jsck_click"){
                    event.data.record.data.check_jskc= true 
                    return ;
                }
    
                this._super(event);
            },
        });
        
    });