取消选中ComponentView中的复选框

时间:2012-12-18 16:57:01

标签: jquery events tridion tridion-2011

我试图通过jquery使用GUI扩展中的文档就绪事件取消选中Tridion的ComponentView中的复选框:

$j(document).ready(function(){
    alert("is loaded");
    var field = $j('[type=checkbox][value=Aceptar]')
    field.attr("checked",false);
    console.log("field = " + field.is(':checked'));
    alert("is checked field = " + field.is(':checked'));
}); 

问题是在“$ j(document).ready”上,字段值似乎没有在ComponentView中加载。我的警报返回该字段未选中,但是当视图完成加载时,复选框被选中。似乎“$ j(document).ready”在加载值之前触发。有人知道我应该使用哪个活动吗?

2 个答案:

答案 0 :(得分:3)

@Adrian Salazar @Sogo感谢您的帮助,也许我应该使用更好的“prop”而不是“attr”来改变那个属性,但问题是一样的,字段还没有加载所以我不能改变那个属性。

@Frank我试过“$ evt.addEventHandler($ display,”start“,onDisplayStarted);”在“ComponentView”显示上,并在我的GUI扩展配置上扩展该视图,但在该事件中,字段仍未加载,每当我尝试访问我的复选框字段时,它表示“未定义”。

最后,我设法取消选中该组件的load事件的复选框:

"EventSystem.Subscribe <Component, LoadEventArgs> (OnComponentLoad, EventPhases.Processed);"

正如Nuno在这里解释http://www.tridiondeveloper.com/inheriting-metadata-on-organizational-items#more-1073,他在OrganizationalItem上使用它,但对于一个组件也是如此。

感谢您的帮助!!

答案 1 :(得分:2)

尝试,

field.prop("checked",false);

field.is(':checked')工作正常,如果需要,可以使用prop('checked')而不是。如果要使用prop()