我在APEX 4.2中有两个选择列表页面项目(X
和Y
)
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
根本没有提到这一点。
答案 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];
}
}