从一个选择列表附加到另一个(Apex 4.2)

时间:2015-09-01 16:18:29

标签: javascript jquery oracle oracle-apex

我在APEX 4.2中有两个选择列表页面项目(XY

X由级联下拉列表填充以提供其值。我希望能够通过动态操作仅将X中的某些值提取到Y,然后才能将级联列表(X)更改为其他选择并继续追加到列出Y

目前,我使用set value操作添加以下JavaScript表达式以附加到Y

var target_val = $('#P1_X').find(":selected").val();
var target_text = $('#P1_X').find(":selected").text();

$('#P1_Y).append($('<option/>', {
    value: target_val,
    text: target_text
}));

但列表Y根本没有提到这一点。

1 个答案:

答案 0 :(得分:0)

管理解决此问题 -

为了从一个列表追加到另一个列表,您可以创建以下功能,该功能使用&#39; onclick&#39;来附加和禁用所选选项。函数调用:

function getValues(X){
  var list = '';
    for (var i = 0; i < obj.length; i++) {
      if (obj.options[i].selected && !obj.options[i].disabled) {
        obj.options[i].disabled=true;
         list += '<optionvalue="'+obj.options[i].value+'">'+obj.options[i].innerHTML+'</option>';
      }
   }
  document.getElementById('Y').innerHTML += list;
}

然后我可以让用户选择删除他们选择的选项,如果他们需要进行任何更改,将选项重新附加到列表的底部:

function removeValues(Y){
  var arr = []; //array so we can repopulate target list
  var el = document.getElementById('X');
     for (var i = 0; i < obj.length; i++) {
        if (obj.options[i].selected) {
         arr.push('<option value="'+obj.options[i].value+'">'+obj.options[i].innerHTML+'</option>');

         $("select:not(#"+$(obj).parent().attr('id')+") option[value="+$(obj).val()+"]").detach();
             }
           }
      for (var i = 0; i < arr.length; i++) {
              el.innerHTML += arr[i];
           }
     }