在 oracle apex 中,表格形式的列可以通过其各自的流 ID 进行控制。流 ID 的示例为 --> f01 <--(第 1 列)或 --> f02 <--(第 2 列),基本上是 fXX,其中 XX 是列号。我正在尝试循环遍历给定各自列号的列。
我想做的是将 x(列号)的值连接到
document.wwv_flow.f+x.toString()+[i]
我感觉非常有信心这不是处理这种情况的正确方法,但我不知道什么是正确的方法。
注意:$v(APEX_ITEM) 返回顶点项的值。
完整代码:
for (var i = 0; i < document.wwv_flow.f01.length; i++) //document.wwv_flow.f01.length returns the number rows
{
var isChecked=$(document.wwv_flow.f01[i]).is(":checked");
if(isChecked){
var copyrow;
apex.widget.tabular.addRow();
copyrow = apex.jQuery(apex.widget.tabular.gTabForm).find("tr").last().insertBefore(apex.jQuery(apex.widget.tabular.gTabForm).find("tr").first());
i++;
copyrow.hide();
var colcount = $(document.wwv_flow.f01[i]).closest("tr").children("td").length; //colcount is the number of columns
for(var x = 4; x < (colcount-4); x++){ //x is the column number
if(x < 10){
x = "0"+x;
}
console.log("Col #"+x+" Value: "+$v((document.wwv_flow.f+x.toString()+[i]))); //!!
}
copyrow.show( "slow" );
}
}
最佳答案
我找到了一个解决方案,该解决方案将循环遍历并打印已选中复选框的行的每个列值。可能还有更好的解决方案,但目前这是我想出的:
我非常确定 Oracle apex 只允许表格形式包含 50 列,并且此代码将循环遍历输入列的值。如果该列是只读的,那么您需要使用
$(obj[key][i]).text();
而不是 $v(obj[key][i])
我设置了一个按钮来运行 JavaScript 动态操作并使用了以下代码
var tabForm = { //these are tabular form columns
1:document.wwv_flow.f01 ,
2:document.wwv_flow.f02 ,
3:document.wwv_flow.f03 ,
4:document.wwv_flow.f04 ,
5:document.wwv_flow.f05 ,
6:document.wwv_flow.f06 ,
7:document.wwv_flow.f07 ,
8:document.wwv_flow.f08 ,
9:document.wwv_flow.f09 ,
10:document.wwv_flow.f10 ,
11:document.wwv_flow.f11 ,
12:document.wwv_flow.f12 ,
13:document.wwv_flow.f13 ,
14:document.wwv_flow.f14 ,
15:document.wwv_flow.f15 ,
16:document.wwv_flow.f16 ,
17:document.wwv_flow.f17 ,
18:document.wwv_flow.f18 ,
19:document.wwv_flow.f19 ,
20:document.wwv_flow.f20 ,
21:document.wwv_flow.f21 ,
22:document.wwv_flow.f22 ,
23:document.wwv_flow.f23 ,
24:document.wwv_flow.f24 ,
25:document.wwv_flow.f25 ,
26:document.wwv_flow.f26 ,
27:document.wwv_flow.f27 ,
28:document.wwv_flow.f28 ,
29:document.wwv_flow.f29 ,
30:document.wwv_flow.f30 ,
31:document.wwv_flow.f31 ,
32:document.wwv_flow.f32
//Up to 50 Columns
}
for (var i = 0; i < document.wwv_flow.f01.length; i++)
{
var isChecked=$(document.wwv_flow.f01[i]).is(":checked");
if(isChecked){
var colcount = $(document.wwv_flow.f01[i]).closest("tr").children("td").length;
var obj = tabForm;
for(var x = 4; x < (colcount-3); x++){
Object.keys(obj).forEach(function(key) {
if(key != x) return;
console.log(key, $v(obj[key][i]));
});
}
}
}
关于javascript - 循环遍历 oracle apex 中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43765141/