我使用spark ui表,每行都有单选按钮组(是和否)和teaxtarea。我有多行。
我的要求是,如果单击“是”,则应该仅在该行中隐藏文本区域。我在加载中编写了以下代码
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广播,并且应该隐藏特定的文本区域
答案 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);