У меня есть два поля, field1 - это флажок, а field2 - обычное текстовое поле. Я хочу скрыть поле field2, если поле field1 не проверено, и если установлено значение
field1, то show field2. Для этого я создаю следующий код:
odoo.define('survey_inherit.FormView', function (require) {
"use strict";
var FormView = require('web.FormView');
var core = require('web.core');
var QWeb = core.qweb;
var FormView = FormView.extend({
_checkField: function(){
var $checkbox = $('.custom-control-input').val();
if ($checkbox.is(':checked')) {
$('.o_form_label').show();
$('.mandatory_msg_class').show();
}else{
$('.mandatory_msg_class').hide();
}//close else
},
});//close FormController
return FormView;
});
Но поле 2 не скрывается, если поле 1 не проверено, а также поле 2 не отображается, если поле 1 отмечено.
Обновление
Мое требование состоит в том, чтобы у меня была одна форма, которая содержит поле one2many с виджетом many2many_tags и другими полями. После нажатия на теги many2many_tags я хочу отобразить полные записи в других полях. Я могу получить полные записи после нажатия на теги, а также эти записи можно поместить в другие поля. После использования attrs и открытия вида формы для создания записей field2 никогда не будет отображаться. Но откройте вид формы в режиме редактирования после создания записи и нажмите на поле many2many_tags field2 не отображается из-за атрибутов. При удалении атрибутов и открытии представления формы для создания поля записей отобразится (но не нужно отображаться, потому что field1 не отмечен) и откроется представление формы в режиме редактирования после создания записи, нажмите на many2many_tags, как и ожидалось. Условие атрибутов: attrs = "{'invisible': [('constr_mandatory', '! =', True)]}" constr_ обязательна: поле флажка
По этой причине я не использую attrs и пытается достичь с помощью javascript. Я надеюсь, что предоставленная информация понятна. Также я обновил вопрос и добавил скриншоты для лучшего понимания.
Использование attrs:
Используя attrs, нажмите на many2many_tags
Без использования атрибутов: