代码之家  ›  专栏  ›  技术社区  ›  madcapnmckay

Jquery自动完成链式请求

  •  6
  • madcapnmckay  · 技术社区  · 17 年前

    Devbridge

    <script type="text/javascript">
        $(document).ready(function() {
            $('#Event_City').autocomplete({
              serviceUrl: '<%=Url.Action("GetCities", "Search") %>',
              minChars:2,
              width: 300,
              delimiter: /(,|;)\s*/,
              deferRequestBy: 150, //miliseconds
              params: { country: 'Yes' },
            });
            $('#Event_Venue').autocomplete({
              serviceUrl: '<%=Url.Action("GetVenues", "Search") %>',
              minChars:2,
              width: 300,
              delimiter: /(,|;)\s*/,
              deferRequestBy: 150, //miliseconds
              params: { city: $("#Event_City").val() },
            });
        });      
    </script>
    

    谢谢,

    2 回复  |  直到 17 年前
        1
  •  7
  •   Jose Basilio    17 年前

    @Ian Mckay-为了获得自动完成功能 要根据城市进行筛选,您需要在“更改”事件中绑定 城市 如下:

    $(document).ready(function() {
        $('#Event_City').autocomplete({
          serviceUrl: '',
          minChars:2,
          width: 300,
          delimiter: /(,|;)\s*/,
          deferRequestBy: 150, //miliseconds
          params: { country: 'Yes' },
        }).change(function(){
            $('#Event_Venue').autocomplete({
              serviceUrl: '',
              minChars:2,
              width: 300,
              delimiter: /(,|;)\s*/,
              deferRequestBy: 150, //miliseconds
              params: { city: $("#Event_City").val() }
            });
        }); 
    }); 
    
        2
  •  3
  •   KyleFarris    17 年前

    它包含默认值的原因是,当页面加载时,自动补全功能会附加到文本框中。为了用新值更新它,插件需要为您提供一种更新其参数对象属性的方法,或者允许您在第二个元素上销毁它,然后在每次用户更改第一个元素的值时重建它。您选择的自动完成库看起来很轻(并不总是坏事……就您的情况而言……),似乎不支持此功能。

    http://view.jquery.com/trunk/plugins/autocomplete/demo/