0

我们正在尝试为一个字段设置一个复杂的依赖项,我们需要将两者andor条件结合起来。

在此处输入图像描述

我该如何实施:

(FieldA and FieldB) or FieldC
4

1 回答 1

0

正如您所指出的,qbo3Dependency行为不支持ANDOR

有两种解决方法。 

自定义 Javascript

您可以按照以下方式创建 JS 函数:

function requireComments() {  
  var fieldA = document.id('FieldA').value;  
  var fieldB = document.id('FieldB').value;  
  var fieldC = document.id('FieldC').value;  
  var commentField = document.id('ExceptionCommentsInput');
  var required = (fieldA && fieldB) || fieldC;  // same as (fieldA.value != '' && fieldB.value !='') || fieldC.value != '';  
  if (required) {    
    commentField.removeAttribute('disabled');    
    commentField.addClass('required');    
    commentField.removeClass('disabled');  
  } else {    
    commentField.setAttribute('disabled');    
    commentField.removeClass('required');    
    commentField.addClass('disabled');  
  }
}

然后,添加requireComments()到 、 和 的处理程序onchange中。FieldAFieldBFieldC

优点: 

  • 对浏览器的要求略低
  • 没有额外的数据通过线路传递/保存到任务

缺点:

  • 必须做自定义JS

隐藏字段

如果您更喜欢远离自定义 JS,您可以使用一些隐藏字段到达您需要去的地方。

创建一个名为 的隐藏字段FielldAFieldB,并使其依赖于FieldA,FieldB(AND)。然后,使ExceptionCommentsInput依赖FieldAFieldB,FieldC(或)。

优点:

  • 易于配置和维护

缺点:

  • 额外的字段(FieldAFieldB)通过电线传递/保存了任务
于 2021-05-07T16:11:24.100 回答