2017-07-17 94 views

回答

0

HTML

 <button class="button buttonOne">Button One</button> 
     <button class="button buttonTwo">Button Two</button> 

的JavaScript

  var btns = document.querySelectorAll('button'); 

      for (var i = 0; btns.length > i; i++) { 
       btns[i].addEventListener('click', function(evt) { 
        disableElements(evt.target); 
       }); 
      } 

      function disableElements(activeEl) { 
       var els = document.querySelectorAll('button'); 
       var target = activeEl; 

       for (var i = 0; els.length > i; i++) { 
        if (els[i] !== target) { 
         els[i].setAttribute('disabled', true); 
        } 
       } 
      } 
+0

#Darren_Sweeney,非常感谢你的回答。我在xml文件中给出了这两个按钮,并将js代码放入js文件中。我试图在一个警告框中获取变量btn的长度,但它显示0.所以,我怎么能解决这个问题?我正在使用odoo 10框架。这些js语法或代码适合odoo10格式吗? – NidhinMohanCheriyan

0

尝试以下步骤:

  1. *.py*.xml定义一个字段flag=True
  2. *.py中定义函数set_flag
  3. In set_flag set flag value False
  4. xml,给一个条件隐藏按钮。

例子:

PY

flag = fields.Boolean('flag', default=True) 

@api.multi 
def set_flag(self): 
    self.flag=False 

* .XML

<button class="button buttonOne" name="set_falg"/> 
<button class="button buttonTwo" attrs="{'invisible':[('flag','=',False)]}"/> 
<field name="flag" invisble="1"/> 

希望它会帮助你。

+0

#KbiR,非常感谢您的回答。有用。但我的实际需要是,我想要禁用/隐藏一个按钮,当点击使用JavaScript的另一个按钮..我是odoo 10的新手。请帮助我如果您知道解决方案。还有1个问题,我如何在js文件中访问xml文件中的表单内容? – NidhinMohanCheriyan

0

当按钮2被点击时,我只需保留一个开关字段(布尔值),其值改变为False。现在我可以在按钮1上设置一个属性,只要switch的值为False就可以只读。

下面是代码:

的Python

switch= fields.Boolean(default=True) 

def change_status(self): 
    self.switch= False 

XML

<field name="switch" invisible="1"/> 
<button string='Button1' attrs="{'readonly':[('switch','=',False)]}">Button One</button> 
<button string='Button2' name="change_status">Button Two</button> 

这里,名称= “change_status”是蟒功能的链接,其改变交换机的状态。

P.S:要使其正确工作,请在使用属性中的值之前添加不可见字段(此处为“switch”)以设置只读状态。