簡體   English   中英

后端的Joomla 3.0組件JS錯誤

[英]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”。

看到:

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

我添加了以下字段,它對我有用

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM