我有一个表格形式,我需要根据某些条件取消和重新启用某些列。
我的动态动作中有以下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之前再添加一个文本框,那么coltext5的名称将变为f06 ....
有没有更好的方法来引用表格形式列?像ID或类一样,即使列的位置发生变化,这些东西是静态的,也不会被改变?
由于
答案 0 :(得分:1)
我之前已经遇到过此问题,并且我已成功使用data
属性来执行此操作 - 例如https://jeffkemponoracle.com/2016/04/05/declarative-tabular-form-dynamic-totals/
例如,您可以在"地址"上设置Element Attributes
。列到data-col="address"
,并使用$("[data-col='address']")
在javascript中引用它们。
当然,您必须将此添加到您需要引用的每个列。