使用 javascript 定位 oracle apex 表格列

targeting oracle apex tabular form columns using javascript

我有一个表格形式,我需要根据某些条件取消并重新启用一些列。

我的动态操作中有以下 javascript 正在运行。我通过名称引用列(f01_0001、f01_0002、f02_0001、f02_0002...)

$("[name='f01']").each(function(i){  

     // columns to be disabled    
     var coltext5 = $("[name='f05']").get(i).id;  
     var checkbox8 = $("[name='f08']").get(i).id.substring(0,8);  

     $("#"+coltext5).prop( "disabled", true ); 
     $("#"+checkbox8).prop( "disabled", true ); 

})

但我遇到的问题是,如果我切换这些列的位置,或者将更多可编辑的列添加到表格形式,这些列的名称将会更改。 比如上面的例子,如果我在coltext5前面多加一个textbox,那么coltext5的名字就会变成f06....

有没有更好的方法来引用表格表格的列?像 ID 或 class,是静态的,即使列的位置改变也不会改变?

谢谢

我以前遇到过这个问题,我已经成功地使用 data 属性来解决这个问题 - 例如https://jeffkemponoracle.com/2016/04/05/declarative-tabular-form-dynamic-totals/

例如,您可以将 "Address" 列上的 Element Attributes 设置为 data-col="address",然后使用 $("[data-col='address']") 在 javascript 中引用它们。

当然,你必须把这个添加到你需要引用的每一列中。