如何捕获Spark UI工具包中单个表的每一行中存在的单选按钮的onchange事件

时间:2018-11-10 18:43:47

标签: ibm-bpm spark-ui

我使用spark ui表,每行都有单选按钮组(是和否)和teaxtarea。我有多行。

enter image description here

我的要求是,如果单击“是”,则应该仅在该行中隐藏文本区域。我在加载中编写了以下代码

var table = page.ui.get('/tablecv1/Table1');
var radiobtn = table.ui.getSibling('/tablecv1/Table1/Radio_Button_Group1');
radiobtn._instance.input.onchange = function(event){
    if(radiobtn.getData() == "yes"){
        radiobtn.ui.getSibling("Text_Area1").setVisible(true)
    }
    else{
        radiobtn.ui.getSibling("Text_Area1").setVisible(false,true)
    }
}

到目前为止,该代码仅在第一行起作用。但是对于第二行,在更改按钮时它甚至没有进入该函数内部,原因可能是所有控件名称都相同。在这种情况下,我应该能够单击任意行中的btn广播,并且应该隐藏特定的文本区域

1 个答案:

答案 0 :(得分:0)

您可以将目标单选按钮传递给内联函数。就像这样:

this.setAreaVisibility = function(radiobtn) {
    radiobtn._instance.input.onchange = function(event){
        if(radiobtn.getData() == "yes"){
            radiobtn.ui.getSibling("Text_Area1").setVisible(true)
        }
        else{
            radiobtn.ui.getSibling("Text_Area1").setVisible(false,true)
        }
    }
}

然后,在单选按钮元素的“更改时”事件中,应按以下方式调用此函数:

me.ui.invoke("setAreaVisibility", me);