dongyan1974 2014-02-04 11:24
浏览 32
已采纳

Prestashop - 产品管理员:未调用自动完成

I added a custom field named product_type in Product admin. It works well, but now, I'm trying to add an autocomplete to this field.

Here is my code (in \mysite\admin\themes\default\template\controllers\products\informations.tpl)

<td style="padding-bottom:5px;">
    <input size="55" type="text" id="product_type" name="product_type" value="{$product->product_type|escape:html:'UTF-8'}" style="width: 130px; margin-right: 5px;" />
    <script type="text/javascript">
        $(document).ready(function() {
            $('#product_type').autocomplete({
                source: function(request, response) {
                    $.ajax({
                        url: "ajax.php",
                        dataType: "json",
                        data: { term: request.term, ajaxProductType: 1 },
                        success: function(data) { response(data); }
                    });
                },              
                minLength: 3,
                select: function( event, ui ) {
                    $(this).val(ui.item.value);
                }
            });
        });
    </script>
</td>

When I write in the field, nothing happen. The autocomplete is not called. No error in console. However, when I put an alert() in the document.ready function, it shows. So, why my autocomplete doesn't work?

Version : Prestashop 1.5.6

Thanks in advance for your help

  • 写回答

1条回答 默认 最新

  • dsogx84602 2014-02-07 13:23
    关注

    I finally found the problem. The form was loaded by ajax.

    So, I had to move the script in the file \prestashop\js\admin-products.js and put it inside the function product_tabs['Informations'] (because my field is under the tab Informations). I also changed the autocomplete script as below.

    product_tabs['Informations'] = new function(){
        //... 
        $('#product_type').autocomplete('ajax.php', {
            delay: 100,
            minChars: 1,
            autoFill: true,
            max:255,
            matchContains: true,
            mustMatch:true,
            scroll:false,
            cacheLength:0,
            extraParams: {
                ajaxProductType : 1
            }
        }).result(function(event, item){
            $(this).val(item);
        });
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥60 pb数据库修改或者求完整pb库存系统,需为pb自带数据库
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路