检查用户是否点击了复选框
Check if user clicked the checkbox
在 QWEB 上 Invoice Portal
我想检查用户是否选中了复选框,如果选中则显示按钮,否则隐藏它们。
我在 Invoice
模型上创建了一个字段:x_custom_checkbox: bool
Default state: False
当状态x_custom_checkbox = False
当状态x_custom_checkbox = True
视图Invoice Portal Template
我用<input type="checkbox" id="invoice.x_custom_checkbox"/>
调用字段,谁能根据复选框的状态动态show/hide2个按钮(上图)?
你可以在 js 上做到这一点。
odoo.define('your_module_name.account_portal_sidebar', function (require) {
'use strict';
var AccountPortalSidebar = require('account.AccountPortalSidebar');
AccountPortalSidebar.include({
events: _.extend({
'change input#x_custom_checkbox': '_onXCustomCheckboxChange',
}, AccountPortalSidebar.prototype.events),
_onXCustomCheckboxChange: function () {
var self = this;
var x_custom_checkbox_checked = this.$('input#x_custom_checkbox').prop('checked');
if (x_custom_checkbox_checked){
$('.o_download_btn').show();
$('.o_portal_invoice_print').show();
} else {
$('.o_download_btn').hide();
$('.o_portal_invoice_print').hide();
}
}, // end of _onXCustomCheckboxChange
});
经过一些测试,我的解决方案实际上非常简单
关于 Invoice Portal
xml
<center><input id="checkbox-status" type="checkbox" name="invoice.x_custom_checkbox"/> Accept</center>
<div id="ShowHideDiv" class="o_download_pdf btn-toolbar flex-sm-nowrap">
<script type="text/javascript">
$("#ShowHideDiv").hide();
$("#checkbox-status").change(function() {
if ( $(this).is(':checked') ) {
$("#ShowHideDiv").show();
} else {
$("#ShowHideDiv").hide();
}
});
在 QWEB 上 Invoice Portal
我想检查用户是否选中了复选框,如果选中则显示按钮,否则隐藏它们。
我在 Invoice
模型上创建了一个字段:x_custom_checkbox: bool
Default state: False
当状态x_custom_checkbox = False
当状态x_custom_checkbox = True
视图Invoice Portal Template
我用<input type="checkbox" id="invoice.x_custom_checkbox"/>
调用字段,谁能根据复选框的状态动态show/hide2个按钮(上图)?
你可以在 js 上做到这一点。
odoo.define('your_module_name.account_portal_sidebar', function (require) {
'use strict';
var AccountPortalSidebar = require('account.AccountPortalSidebar');
AccountPortalSidebar.include({
events: _.extend({
'change input#x_custom_checkbox': '_onXCustomCheckboxChange',
}, AccountPortalSidebar.prototype.events),
_onXCustomCheckboxChange: function () {
var self = this;
var x_custom_checkbox_checked = this.$('input#x_custom_checkbox').prop('checked');
if (x_custom_checkbox_checked){
$('.o_download_btn').show();
$('.o_portal_invoice_print').show();
} else {
$('.o_download_btn').hide();
$('.o_portal_invoice_print').hide();
}
}, // end of _onXCustomCheckboxChange
});
经过一些测试,我的解决方案实际上非常简单
关于 Invoice Portal
xml
<center><input id="checkbox-status" type="checkbox" name="invoice.x_custom_checkbox"/> Accept</center>
<div id="ShowHideDiv" class="o_download_pdf btn-toolbar flex-sm-nowrap">
<script type="text/javascript">
$("#ShowHideDiv").hide();
$("#checkbox-status").change(function() {
if ( $(this).is(':checked') ) {
$("#ShowHideDiv").show();
} else {
$("#ShowHideDiv").hide();
}
});