Jquery的Ajax自动完成:如何发送动态参数

前端之家收集整理的这篇文章主要介绍了Jquery的Ajax自动完成:如何发送动态参数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的一个应用程序中使用Ajax Autocomplete for Jquery( http://www.devbridge.com/projects/autocomplete/jquery/).搜索表单看起来像这样:
  1. <form id="topsearch" method="POST" action="/searchAll"><input type="text" class="searchform" name="q" id="q" value="Country,City,Hotel or a Tourist Attraction" o nfocus="clearInput(this);" onblur="defaultInput(this);" />
  2. <select id="top_search_select" name="entity_type">
  3. <option value="country">Countries</option>
  4. <option value="city">Cities</option>
  5. <option value="place" selected="selected">Tourist Attractions</option>
  6. <option value="hotel">Hotels</option>
  7. </select>
  8. <input type="submit" name="topsearch" class="submit" value="SEARCH" title="SEARCH"/>
  9. </form>

并且自动完成配置如下所示:

  1. <script type="text/javascript">
  2. //<![CDATA[
  3. var a = $('#q').autocomplete({
  4. serviceUrl:'/search',delimiter: /(,|;)\s*/,// regex or character
  5. maxHeight:400,width:325,zIndex: 9999,params: {entity_type:$('#top_search_select').val()},deferRequestBy: 0,//miliseconds
  6. noCache: false,//default is false,set to true to disable caching
  7. onSelect: function(value,data){window.location.replace(data);},});
  8. //]]>
  9. </script>

现在问题是在后端我有不同的处理程序,为用户通过表单中的选择选项选择的不同类型的实体生成结果.

默认情况下,entity_type是正好传递给后端处理程序的地方.但是,我想要的是当一个人从params形式的选择框中选择一个不同的实体时:{entity_type:$(‘#top_search_select’).脚本配置中的val()}也会得到更新.

任何帮助或想法将不胜感激.谢谢.

解决方法

或者,您可以使用在发送ajax请求之前评估的函数来指定参数.
  1. $('#q').autocomplete({
  2. ...
  3. params: {
  4. 'entity_type': function() {
  5. return $('#top_search_select').val();
  6. }
  7. }
  8. ...
  9. });

猜你在找的jQuery相关文章