You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Odoo 14:字符字段按下回车键触发函数的实现方法

在Odoo 14中实现字符字段回车触发指定函数的方案

实现思路

可以通过扩展Odoo的前端字段组件,为目标字符字段绑定回车键按下事件,在事件回调中调用后端customer.status.search模型的get_details方法,最后处理返回的窗口动作完成页面跳转。

JavaScript 实现代码

在自定义模块的static/src/js目录下创建custom_char_field.js文件,内容如下:

odoo.define('your_module.custom_char_field', function (require) {
    "use strict";

    var basic_fields = require('web.basic_fields');
    var field_registry = require('web.field_registry');

    // 继承原生字符字段组件
    var CustomCharField = basic_fields.CharField.extend({
        start: function () {
            this._super.apply(this, arguments);
            var self = this;
            // 为输入框绑定回车事件
            this.$input.on('keydown', function (e) {
                if (e.keyCode === 13) {
                    e.preventDefault(); // 阻止默认回车行为(如表单提交)
                    // 调用后端方法
                    self._rpc({
                        model: 'customer.status.search',
                        method: 'get_details',
                        args: [], // 如需传递字段值,可改为 [self.value]
                        context: self.context,
                    }).then(function (action) {
                        // 执行返回的窗口动作
                        if (action) {
                            self.do_action(action);
                        }
                    });
                }
            });
        },
    });

    // 注册自定义组件,供视图调用
    field_registry.add('custom_char_trigger', CustomCharField);

    return CustomCharField;
});

配置与使用步骤

  1. 在模块的__manifest__.py中引入该JS文件:
'assets': {
    'web.assets_backend': [
        'your_module/static/src/js/custom_char_field.js',
    ],
},

(将your_module替换为实际模块名称)

  1. 在视图XML中为目标字符字段指定使用自定义组件:
<field name="target_char_field" widget="custom_char_trigger"/>

注意事项

  • 确保当前用户拥有customer.status.search模型的调用权限,否则会触发权限错误。
  • 如果需要将字段输入值传递给后端get_details方法,可修改JS中_rpc的args参数为[self.value],同时调整Python方法接收参数。

内容的提问来源于stack exchange,提问作者user17707295

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 21:15:35