Подтвердить что ты не робот

Снимите флажок в компоненте ComponentView

Я пытаюсь снять флажок в ComponentView из Tridion с помощью jquery, используя событие готовности документа в расширении GUI:

$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" срабатывает до загрузки значений. Кто-нибудь знает, какое событие я должен использовать?

4b9b3361

Ответ 1

@Adrian Salazar @Sogo Спасибо за вашу помощь, может быть, мне нужно использовать "prop" вместо "attr", чтобы изменить это свойство, но проблема была такой же, поля не были загружены, поэтому я не мог измените это свойство.

@Frank Я попытался с помощью $evt.addEventHandler($ display, "start", onDisplayStarted); на экране "ComponentView" и расширять этот вид конфигурации моего расширения GUI, но в этом случае поля также не загружаются, и каждый раз, когда я пытался получить доступ к моему полем флажка, он сказал, что это "undefined".

Наконец, мне удалось снять флажок, связанный с событием загрузки компонента:

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

поскольку Nuno объясняет здесь http://www.tridiondeveloper.com/inheriting-metadata-on-organizational-items#more-1073, он использует его в OrganizationalItem, но работает одинаково для компонента.

Спасибо за помощь!

Ответ 2

попробуйте,

field.prop("checked",false);

field.is(':checked') работает нормально, и если вам нужно, вы можете использовать prop('checked') вместо this.anyway убедитесь, что ваша версия jquery 1.6 или выше, если вы собираетесь использовать prop()