2016-11-28 54 views
1

首先,這裏是我的代碼:jQuery的使用選擇下拉與AJAX搜索

<script> 
$(document).ready(function(){ 

    $("#search_dropdown").on('change', function() { 
     ajax_search(); 
    }); 

}); 

function ajax_search(){ 
    var search_this = $("#search_dropdown").val(); 
     $.post("../includes/db-search-properties.php", {searchit : search_this}, function(data){ 
     $("#display_results").html(data); 
    }); 
} 
</script> 

我想在這裏實現是相當簡單的。我有一個選擇下拉列表的客戶端列表。點擊後,選擇會更改數據表(稱爲#display_results)而無需按下按鈕,這就是使用更改功能的原因。

這是有效的,你怎麼只能點擊選擇下拉菜單兩次,然後它不會再次下降,除非頁面被刷新。這個事件還會導致我的其他jQuery事件中斷(比如我的菜單手風琴反覆上下),而且我不知道如何告訴這個腳本只關注手頭的任務。

即使我已經刪除的登錄腳本,您可以通過此鏈接查看錯誤:

https://www.summersproperty.com/dashboard3/directory/search-properties.php

單擊下拉右側幾次,它就會停止工作,請點擊導航菜單項後,他們會反彈。

+0

包含'#display_results'內的'#search_dropdown'? –

+0

不,不是,#display_results在頁面底部 – darylsummers

+0

在這種情況下,你有什麼應該工作絕對好。我所能建議的是,當選擇停止工作時,您檢查控制檯是否有錯誤。 –

回答

0

我會嘗試停止進一步傳播的事件。像這樣:

$(document).ready(function(){ 
    $("#search_dropdown").on('change', function(e) { 
     ajax_search(); 
     e.stopPropagation(); 
    }); 
}); 

Documentation

+0

不幸的是,這沒有做任何事情來解決問題 – darylsummers

0

它多次試驗後出現錯誤和錯誤使用Chrome,因爲它可以創造奇蹟在所有其他瀏覽器,但在Chrome中點擊幾下後停止。

0
$(document).ready(function(){ 

    $("#search_dropdown").on('change', function() { 
    var search_this = $(this).find('option:selected').val(); 
    if(search_this !=''){ 
     $.post("../includes/db-search-properties.php", {searchit : search_this}, function(data){ 
      $("#display_results").html(data); 
     }); 
    } 
    else{ console.log("no value found"); } 
    return false; # optional 
    }); 

}); 

你試過嗎?將當前選擇的值傳遞給你的ajax調用?

運行例如check this

+0

感謝更乾淨的代碼。它適用於所有其他瀏覽器,包括iPad Chrome,但在我的Mac上的桌面版Chrome上出現問題。解決方法未知。 – darylsummers

+0

你能提供任何鉻生成的示例錯誤嗎?或以任何方式訪問您遇到錯誤的頁面? –

+0

試試這個'如果(search_this!=「」){做搜索}其他{未發現值}' –

相關問題