Ошибка Joomla 3.0 компонента JS в backend

76
7

Я разрабатываю компонент Joomla 3.0. В качестве образца я загрузил компонент com_hello из документации Joomla.

Ошибка, которую я встречаю, заключается в том, что когда я устанавливаю флажок в списке представления, я получаю сообщение об ошибке TypeError: b is null. Эта ошибка произошла где-то в core.js.

Обычно в 2.5, если я использовал JHtml::_('grid.id',$i,$item->id); код и имел <input type="hidden" name="boxchecked" value="0"/> поле в моей форме, оно отлично работало.

Я также посмотрел в некоторых компонентах ядра Joomla, но я не нашел чего-то, чего не хватало, или какой-либо другой ошибки.

Вот код default.php моего представления:

<?php

// NO DIRECT ACCESS TO THIS FILE
defined('_JEXEC') or die('Restricted access');

JHtml::_('behavior.tooltip');
?>
<form action="<?php echo JRoute::_('index.php?option=com_simplesuite'); ?>" method="post" name="adminForm">
<table class="adminlist">
<thead>
<tr>
<th>ID</th>
<th><input type="checkbox" name="checkall-toggle" title="<?php echo JText::_('JGLOBAL_CHECK_ALL'); ?>" value="" onclick="Joomla.checkAll(this);" /></th>
<th><?php echo JText::_('COM_SIMPLESUITE_TAGCLOUD_ADMINISTRATOR_LIST_NAME'); ?></th>
<th><?php echo JText::_('COM_SIMPLESUITE_TAGCLOUD_ADMINISTRATOR_LIST_TAGS'); ?></th>
<th><?php echo JText::_('COM_SIMPLESUITE_TAGCLOUD_ADMINISTRATOR_LIST_ACTIONS'); ?></th>
</tr>
</thead>
<tbody>
<?php foreach ($this->items as $i => $item) : ?>
<tr class="row<?php echo $i%2; ?>">
<td><?php echo $item->id; ?></td>
<td><?php echo JHtml::_('grid.id',$i,$item->id); ?></td>
<td><?php echo $item->name; ?></td>
<td><?php echo ($item->tags) ? $item->tags : JText::_('COM_SIMPLESUITE_TAGCLOUD_ADMINISTRATOR_LIST_EMPTY'); ?></td>
<td><a href="#">W</a><a href="#">X</a></td>
</tr>
<?php endforeach; ?>
</tbody>
<tfoot>
<tr>
<td colspan="4"><?php echo $this->pagination->getListFooter(); ?></td>
</tr>
</tfoot>
</table>
<div>
<input type="hidden" name="task" value="" />
<input type="hidden" name="boxchecked" value="0" />
<?php echo JHtml::_('form.token'); ?>
</div>
</form>

спросил(а) 2012-10-20T23:08:00+04:00 7 лет, 8 месяцев назад
1
Решение
84

Попробуйте добавить это в начало своего скрипта:

window.addEvent('domready', function () {
if (typeof jQuery != 'undefined' && typeof MooTools != 'undefined') {

Element.implement({
slide:function (how, mode) {
return this;
}
});
}
});

Это, вероятно, конфликт между игроками, который находится под разрешением с командой разработчиков.

ответил(а) 2012-10-21T03:33:00+04:00 7 лет, 8 месяцев назад
101

Для вашего элемента <form> убедитесь, что у вас есть id="adminForm". См. Http://docs.joomla.org/Potential_backward_compatibility_issues_in_Joomla_3.0_and_Joomla_Platform_12.1#JavaScript для получения дополнительной информации.

ответил(а) 2013-03-25T00:30:00+04:00 7 лет, 3 месяца назад
54

Попытайтесь использовать это:

<?php echo JHtml::_('grid.checkall'); ?>

вместо этого:

<input type="checkbox" name="checkall-toggle" title="<?php echo JText::_('JGLOBAL_CHECK_ALL'); ?>" value="" onclick="Joomla.checkAll(this);" />

Это сработало для меня.

ответил(а) 2013-10-14T10:57:00+04:00 6 лет, 8 месяцев назад
38

Я добавил следующее поле, и это сработало для меня

<input type="hidden" name="boxchecked" value="" />

ответил(а) 2015-04-17T16:58:00+03:00 5 лет, 2 месяца назад
39

Добавить id = "adminForm" в форму. Я провожу время, чтобы найти его, имел ту же проблему.

Формы с именем = "adminForm" теперь также требуют id = "adminForm".

видеть:

http://docs.joomla.org/Potential_backward_compatibility_issues_in_Joomla_3_and_Joomla_Platform_12.2#JavaScript

ответил(а) 2013-11-13T05:45:00+04:00 6 лет, 7 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема