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

Javascript 从一个选择列表追加到另一个选择列表(Apex 4.2),javascript,jquery,oracle,oracle-apex,Javascript,Jquery,Oracle,Oracle Apex,我在APEX 4.2 X和Y中有两个选择列表页面项 X由级联下拉列表填充,以提供其值。我希望能够通过一个动态操作将某些值从X拉入Y,然后能够将级联列表X更改为另一个选择,并继续附加到列表Y 目前,我有以下JavaScript表达式,它使用一个set-value操作来附加到Y: 但是列表Y根本没有发现这个问题。设法解决了这个问题- 为了从一个列表追加到另一个列表,您可以创建以下函数,该函数使用“onclick”函数调用追加和禁用所选选项: function getValues(X){ var

我在APEX 4.2 X和Y中有两个选择列表页面项

X由级联下拉列表填充,以提供其值。我希望能够通过一个动态操作将某些值从X拉入Y,然后能够将级联列表X更改为另一个选择,并继续附加到列表Y

目前,我有以下JavaScript表达式,它使用一个set-value操作来附加到Y:

但是列表Y根本没有发现这个问题。

设法解决了这个问题-

为了从一个列表追加到另一个列表,您可以创建以下函数,该函数使用“onclick”函数调用追加和禁用所选选项:

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];
           }
     }
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];
           }
     }