Revo. ExtJS. Помогите плиз кто владеет.

Однажды изучу, но пока не доходят руки. Очень прошу помощи у знатоков по коду, сам походу не вывезу… уже сутки просидел.

Делаю кастомное поле по мануалам. Что-то типо того: тыц
пыц

Все получается. Но дошел до момента, что никак не могу вытащить данные. С инпутом если — все ок. Но разница в том, что у меня не инпут, а див, в который подгружается информация. Т.е. в TV должно записаться innerHTML этого дива.

Вот заведомо неверный мой код:
<div id="tv{$tv->id}" name="tv{$tv->id}" class="contboxs"></div>


<script type="text/javascript">
// <![CDATA[
{literal}
MODx.load({
{/literal}
    xtype: 'textfield'
    ,name: 'tv{$tv->id}'
    ,hiddenName: 'tv{$tv->id}'
    ,transform: 'tv{$tv->id}'
    ,id: 'tv{$tv->id}'
    ,width: 300

{literal}
    ,listeners: { 'div': { fn:MODx.fireResourceFormChange, scope:this}}
});
{/literal}
// ]]>
</script>
Что подправить можно, чтоб заработало с блочным элементом?0о
Даниил
26 апреля 2017, 21:34
modx.pro
1 570
0

Комментарии: 6

Даниил
27 апреля 2017, 09:05
0
Судя по количеству ответов не только мне ЭкстЖиЭс сложноват :D
    Алексей
    27 апреля 2017, 09:28
    0
    Так и есть, в основном это разработчики дополнений. Из-за Ext JS на revo, некоторые выбирают evo
      Даниил
      27 апреля 2017, 09:30
      0
      Ахах))) По стечению обстоятельств как раз дополнение и разрабатываюXD
    Наумов Алексей
    27 апреля 2017, 10:05
    0
    Попробуйте записывать значение tv в input (или textarea), и повесить обработчик, который будет связывать содержимое input с div, т.е. input пусть будет первичным, а div зависеть от его значения.
      Даниил
      27 апреля 2017, 10:09
      0
      Ну примерно этим путем счас и иду…

      <input type="hidden" id="tv{$tv->id}" name="tv{$tv->id}" class="contboxs" value="{$tv->value|escape}"></input>
      <div id="contboxs{$tv->id}" name="contboxs{$tv->id}" class="contboxs"></div>
      
      
      <script type="text/javascript">
      
      // <![CDATA[
      {literal}
      
      MODx.load({
      {/literal}
          xtype: 'textfield'
          ,name: 'tv{$tv->id}'
          ,hiddenName: 'tv{$tv->id}'
          ,transform: 'tv{$tv->id}'
          ,id: 'tv{$tv->id}'
          ,value: Ext.get(contboxs{$tv->id}).dom.innerHTML
      {literal}
          ,listeners: { 'select': { fn:MODx.fireResourceFormChange, scope:this}}
      });
      {/literal}
      // ]]>
      </script>

      Только хз как его присваивать… Если вот так чекаю,

      jQuery('.contboxs').on('click', function(){
          value = Ext.get(contboxs{$tv->id}).dom.innerHTML;
          console.log(value);
      });

      то в консоли то что надо вижу, а через код выше не лезет упорно в value инпута
      Даниил
      27 апреля 2017, 15:20
      0
      Я этот ExtJS дом труба шатал… Замучался сил нет… Сделал пока на общепонятном jQuery.
      Конечно, если найду в дальнейшем способ, хотелось бы все таки по нормальному.
      Так что все равно актуально и вопрос открыт!

      <input type="hidden" id="tv{$tv->id}" name="tv{$tv->id}" class="contboxs" value="{$tv->value|escape}"></input>
      <div id="contboxs{$tv->id}" name="contboxs{$tv->id}" class="contboxs"></div>
      
      
      <script type="text/javascript">
      
      // <![CDATA[
      {literal}
      MODx.load({
      {/literal}
          xtype: 'container'
          ,name: 'contboxs{$tv->id}'
          ,hiddenName: 'contboxs{$tv->id}'
          ,transform: 'contboxs{$tv->id}'
          ,id: 'contboxs{$tv->id}'
      {literal}
          ,listeners: { 'select': { fn:MODx.fireResourceFormChange, scope:this}}
      });
      {/literal}
      // ]]>
      
      
      
      
      $('.contboxs').bind("DOMSubtreeModified",function(){
          var cbtext = $(this).html();
          $('#tv' + {$tv->id}).val(cbtext);
      });
      
      $( document ).ready(function() {
         var tvtext = $('#tv' + {$tv->id}).val();
         $('#contboxs' + {$tv->id}).html(tvtext);
      });
      
      </script>
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        6