javascript
  • php
  • jquery
  • opencart
  • 2017-10-06 38 views 0 likes 
    0

    我最近在管理页面创建了过滤器类别的功能。但是当我按下“进入”按钮,出现弹出删除。我想要的是当我按下“输入”键时,它就像产品页面一样执行filter()函数。Opencart Filter Button在产品列表和类别列表中输入

    我已经在底线添加这些代码:

    <script type="text/javascript"><!-- 
    function filter() { 
        url = 'index.php?route=catalog/category&token=<?php echo $token; ?>'; 
    
        var filter_name = $('input[name=\'filter_name\']').attr('value'); 
    
        if (filter_name) { 
         url += '&filter_name=' + encodeURIComponent(filter_name); 
        } 
    
        location = url; 
    } 
    //--></script> 
    <script type="text/javascript"><!-- 
    $('#form input').keydown(function(e) { 
        if (e.keyCode == 13) { 
         filter(); 
        } 
    }); 
    //--></script> 
    

    但尽管如此,当我按下回车键,返回删除虽然过滤器仍在运行的确认。任何人都知道为什么在这个页面不能像产品页面?因为代码是相同的。

    +0

    请您在Chrome中打开开发者工具和查找代码问你确认删除(在控制台选项卡中查找所有代码中的文本,然后按Ctrl + Shift + f)。您可以在那里设置断点并检查堆栈。我相信你会发现一些代码将事件监听器添加到该关键事件中。您可以将多个侦听器添加到一个事件。 – HMR

    +0

    你好,控制台日志上没有任何内容。 –

    +0

    我不知道删除确认来自哪里。它来自opencart还是来自JavaScript框架。它是模态对话框还是本机JavaScript确认?但是,您可以看到它显示的文本,并可以使用chrome开发工具来查找代码。如果你能确定是什么创造了构象,它将有助于解决这个问题。我的评论不是关于只看控制台,而是寻找像“删除”之类的东西,并确定打开构造的代码。在那里设置一个断点并检出调用堆栈。您应该能够找到哪些代码添加了事件侦听器。 – HMR

    回答

    1

    它看起来像按enter提出,意在删除项的形式,也许就可以创建自定义操作,但如果你不想删除的项目你取消提交触发与删除操作形式:

    ... 
    e.preventDefault(); 
    filter(); 
    

    如果删除处理程序是先叫你需要找到处理“提交”的代码,删除的处理程序

    $("#form")off("submit") 
        .on("submit",x => { 
        //check if e.target is delete button and if it is 
        // then call the delete function. 
        }) 
    ; 
    

    ,并手动要求提交自己(的处理程序,如果你也想在一定操作来删除表格(如所谓的删除按钮)

    +1

    之前运行post方法,所以最后我的代码如下所示:'if(e.keyCode == 13){e.preventDefault();过滤(); }' –

    0

    试试这个代码

    <script type="text/javascript"><!-- 
    $('input[name=\'filter_name\']').keydown(function(e) { 
        if (e.keyCode == 13) { 
         filter(); 
        } 
    }); 
    //--></script> 
    
    +0

    还是一样...我认为真正的问题是它在脚本 –

    相关问题