Как поймать событие onchange переключателя, присутствующего в каждом ряду отдельной таблицы в комплекте инструментов spark ui - PullRequest
0 голосов
/ 10 ноября 2018

Я использую таблицу 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 голосов
/ 10 декабря 2018

Вы можете передать целевой переключатель на встроенную функцию. Это было бы так:

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)
        }
    }
}

Затем при событии «On Change» элемента переключателя вы должны вызвать эту функцию следующим образом:

me.ui.invoke("setAreaVisibility", me);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...