javascript - 创建一个具有自动填充逗号或点到浮点字段功能的小部件(Odoo 13)
问题描述
当用户通过js在float字段中输入值时,我正在尝试创建一个具有自动填充逗号或点功能的小部件。
如果用户输入 123456789 ,它应该立即自动变为 12,345,667.89 。
但在我的代码中,它只是在单击按钮后才起作用:
odoo.define('autofill.separate', function (require) {
"use strict";
var basic_fields = require('web.basic_fields');
var registry = require('web.field_registry');
var BoldWidget = basic_fields.FieldChar.extend({
_renderReadonly: function () {
this._super();
var old_html_render = this.$el.html();
var new_html_render = old_html_render.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")
this.$el.html(new_html_render);
},
});
registry.add('autofill_separate', BoldWidget);
});
请帮忙!
谢谢!
解决方案
您可以使用 jquery 掩码插件:
将此添加到您的后端资产 https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.13.4/jquery.mask.min.js
更新您的小部件:
var basic_fields = require('web.basic_fields'); var registry = require('web.field_registry'); var BoldWidget = basic_fields.FieldMonetary.extend({ _prepareInput: function ($input) { this._super.apply(this, arguments); this.$input.mask("#,##0.00", {reverse: true}); return this.$input; }, }); registry.add('autofill_separate', BoldWidget);
推荐阅读
- java - 无法在 Tomcat 9 (AWS EC2 Linux 2) 上的 Java SDK 1.17.0 中执行 Azure 语音服务
- javascript - 如何在 JavaScript 中的模式之间替换/附加文本
- symfony - ApiPlatform - 自定义操作上的 GroupFilter
- angular - 使用为 NgModule 提供的值
- python - 有没有办法将一个数据框“绘制”为一个表格,对于包含特定字符串的每个单元格具有不同的颜色?
- wordpress - 如何将 ACF Gutinburg 块数据添加到自定义页面?
- c# - 使用 Automapper 组合目标中的两个字段
- flutter - 如何在颤动中将图像保存在字符串路径中?
- opencv - 用于识别汽车的 HAAR 级联类型图像
- java - 如何按类中的时间戳对 Kotlin 中的 HashMap 进行排序?