Ajax Magento搜索表单迷你重复功能

Ajax Magento搜索表单迷你重复功能,ajax,forms,magento,search,Ajax,Forms,Magento,Search,在我的网站上,我有两个菜单顶栏。一个停留在页眉部分,另一个只在用户到达滚动的某个点时显示(我在这里使用了一个简单的jQuery代码)。这里的问题是,两个顶部栏中都包含了搜索表单Mini,但只有在呈现的第一个栏中(在我的例子中是“#hiddenMenu”顶部栏),ajax live Search才起作用 为了让您理解,header.phtml文件: <div id="hiddenMenu"> <?php echo $this->getChildHtml('topMe

在我的网站上,我有两个菜单顶栏。一个停留在页眉部分,另一个只在用户到达滚动的某个点时显示(我在这里使用了一个简单的jQuery代码)。这里的问题是,两个顶部栏中都包含了搜索表单Mini,但只有在呈现的第一个栏中(在我的例子中是“#hiddenMenu”顶部栏),ajax live Search才起作用

为了让您理解,header.phtml文件:

<div id="hiddenMenu">
    <?php echo $this->getChildHtml('topMenu') ?>
    <?php echo $this->getChildHtml('topBar') ?>
</div>
<div class="header-container">
<div class="quick-access">
    <?php echo $this->getChildHtml('topLinks') ?>
</div>

<div class="header">
    <?php if ($this->getIsHomePage()):?>
    <h1 class="logo"><a href="<?php echo $this->getUrl('') ?>" title="<?php echo $this->getLogoAlt() ?>" class="logo"><img src="<?php echo $this->getLogoSrc() ?>" alt="<?php echo $this->getLogoAlt() ?>" /></a></h1>
    <?php else:?>
    <h1 class="logo"><a href="<?php echo $this->getUrl('') ?>" title="<?php echo $this->getLogoAlt() ?>" class="logo"><img src="<?php echo $this->getLogoSrc() ?>" alt="<?php echo $this->getLogoAlt() ?>" /></a>
    <?php endif?></h1>
</div>

<div id="menu">
    <?php echo $this->getChildHtml('topMenu') ?>
    <?php echo $this->getChildHtml('topBar') ?>
</div>

<?php echo $this->getChildHtml('topContainer'); ?>

如您所见,它们之间的唯一区别在于它们的位置,因为search.mini.form由getChildHtml('topBar')调用。但是在search.mini.form的第二个外观中,由于某种原因,ajax live搜索无法工作

我的form.mini.phtml文件仍保留原始文件:

<?php $catalogSearchHelper =  $this->helper('catalogsearch'); ?>
<form id="search_mini_form" action="<?php echo $catalogSearchHelper->getResultUrl() ?>" method="get">
   <div class="form-search">
        <div class="search-mini">
            <input id="search" placeholder="Busque" type="text" name="<?php echo $catalogSearchHelper->getQueryParamName() ?>" class="input-text" />
            <button type="submit" title="<?php echo $this->__('Go') ?>" class="button"><img src="<?php echo $this->getSkinUrl('images/ico-search.png') ?>"></button>   
        </div>
        <div id="search_autocomplete" class="search-autocomplete"></div>
        <script type="text/javascript">
           //<![CDATA[
               var searchForm = new Varien.searchForm('search_mini_form', 'search', 'Search');
               searchForm.initAutocomplete('<?php echo $catalogSearchHelper->getSuggestUrl() ?>', 'search_autocomplete');
           //]]>
        </script>
    </div>
</form>


您的两个搜索表单具有相同的名称

当你打电话时:

新的Varien.searchForm('search\u mini\u form'

它只引用第一个,然后将Live Search Ajax东西附加到这个

只有这个

您应该有两个不同的名称,并将Ajax设置为这两种形式


关于

谢谢你的帮助,但是为表单设置不同的名称并没有解决问题。现在,我也在尝试为它们设置不同的Ajax事件。看看会发生什么。Dagfr,虽然只是更改表单的名称并没有解决我的问题,但这是一种阻碍。我还必须更改输入名称和自动完成id。我只需要ded a Anything sufix(在本例中为“隐藏”),它起了作用。我还必须确保Ajax调用的一致性:var searchForm=new Varien.searchForm('search\u menu\u hidden'、'search\u hidden','');searchForm.initAutocomplete('search\u autocomplete\u hidden');