2016-11-28 45 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!=“”){做搜索}其他{未发现值}' –