[英]Joomla 3.0 Component JS error in backend
我正在开发一个Joomla 3.0组件。 作为示例,我从Joomla文档中下载了com_hello组件。
我发生的错误是,当我检查视图列表中的复选框时,收到错误消息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>
对于您的<form>
元素,还要确保您也具有id="adminForm"
。 有关更多信息,请参见http://docs.joomla.org/Potential_backward_compatibility_issues_in_Joomla_3.0_and_Joomla_Platform_12.1#JavaScript 。
尝试使用此:
<?php echo JHtml::_('grid.checkall'); ?>
代替这个:
<input type="checkbox" name="checkall-toggle" title="<?php echo JText::_('JGLOBAL_CHECK_ALL'); ?>" value="" onclick="Joomla.checkAll(this);" />
那对我有用。
尝试将其添加到脚本顶部:
window.addEvent('domready', function () {
if (typeof jQuery != 'undefined' && typeof MooTools != 'undefined') {
Element.implement({
slide:function (how, mode) {
return this;
}
});
}
});
这可能是开发团队正在解决的Mootols冲突。
将id =“ adminForm”添加到表单中。 我花了一段时间找到它,遇到了同样的问题。
现在,具有名称=“ adminForm”的表单也需要id =“ adminForm”。
看到:
我添加了以下字段,它对我有用
<input type="hidden" name="boxchecked" value="" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.