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