javascript
  • php
  • jquery
  • opencart
  • 2017-10-06 66 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

    還是一樣...我認爲真正的問題是它在腳本 –

    相關問題