jQuery: Получить данные формы родительского окна в дочернем
Есть форма с ID==adminForm
Структура формы: <div id="elements[<?php echo $element; ?>]" class="select-markers"> <ul> <li> <div> <?php echo $this->app->html->_('control.text', 'elements['.$element.'][marker][][location]', $marker[location], 'size="60" maxlength="255" title="'.JText::_('Location').'" placeholder="'.JText::_('Location').'"'); ?> <div class="more-options"> <div class="trigger"> <div> <div class="advanced button hide"><?php echo JText::_('Hide Options'); ?></div> <div class="advanced button"><?php echo JText::_('Show Options'); ?></div> </div> </div> <div class="advanced options"> <div class="row"> <?php echo $this->app->html->_('control.text', 'elements['.$element.'][marker][][name]', $marker[name], 'size="60" maxlength="255" title="'.JText::_('Name').'" placeholder="'.JText::_('Name').'"'); ?> </div> <div class="row"> <?php echo $this->app->html->_('control.text', 'elements['.$element.'][marker][][description]', $marker[description], 'size="60" maxlength="255" title="'.JText::_('Description').'" placeholder="'.JText::_('Description').'"'); ?> </div> <div class="row"> <?php echo $this->app->html->_('control.text', 'elements['.$element.'][marker][][coordinates]', $marker[coordinates], 'size="60" style="width:255px; margin-right:5px;" maxlength="255" title="'.JText::_('Coordinates').'" placeholder="'.JText::_('Coordinates').'"'); ?><strong><a class="coordinates-get" title=" <?php echo JText::_('Get coordinates'); ?>" href="<?php echo $this->app->path->url('elements:yandexmaps/getcoordinates.php?apikey='.$apikey.'&elmnt='.$element); ?>" ><?php echo JText::_('Get coordinates'); ?></a></strong> </div> <div class="row"> <?php echo $this->app->html->_('select.genericlist', $icons_option, 'elements['.$element.'][marker][][icon]', 'class="image"', 'value', 'text', $marker[icon]); ?> </div> </div> </div> </div> </li> </ul> <a class="marker-add" title="<?php echo JText::_('Add Marker'); ?>" href="javascript:void(0);" ><?php echo JText::_('Add Marker'); ?></a> </div> Новые элементы добавляются динамически к контейнеру "#elements\\[<?php echo $element; ?>\\] ul" посредством append. Фунцию добавления не привожу, т.к. работчая. Открываю новое окно: jQuery(function($) { $('a.coordinates-get').live('click', function(e) { e.preventDefault(); w_getcoords = window.open($(this).attr('href'),'','toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, width=620px, height=550px'); if($('#elements\\[<?php echo $element; ?>\\] ul li.selected').length > 0){ if ($('#elements\\[<?php echo $element; ?>\\] ul li.selected') != $(this).closest('li')){ $('#elements\\[<?php echo $element; ?>\\] ul li.selected').removeClass("selected"); $(this).closest('li').addClass("selected"); } } else { $(this).closest('li').addClass("selected"); } if (window.focus) { w_getcoords.focus(); } return false; }); По клике на ссылку "coordinates-get" открываю окно (w_getcoords), из которого мне нужно получить данные из поля родительского окна - "elements['.$element.'][marker][][coordinates]". Но так как элементов "li" будет много то для их разграничения по клике на ссылку родительскому "li" присваивается класс "selected". Но эта часть функции не работает. Из открытого окна "w_getcoords" для получения/присвоения данных использую следующее: var parents = $('#elements\\[<?php echo $element; ?>\\] ul li.selected', window.opener.document); parents.find('input[name=elements\\[<?php echo $element; ?>\\]\\[marker\\]\\[\\]\\[coordinates\\]]').val(geoPoint.toString()); но последнее не работает, т.к. класс "selected" не присваивается. Прошу знатоков jQuery помочь. Мучаюсь с данной проблемой уже несколько недель. |
Что никто не может помочь?
Подскажите, хотя бы, правильно ли я делаю присвоение/изменение нового класса "selected" родительскому элементу "li"? |
Часовой пояс GMT +3, время: 06:04. |