今天在尝试用jQuery 的 autoComplete插件来改造系统中原有的search组件。发现plugin向服务器端提交查询参数的时候,使用的是参数“q”。但我需要传递到服务器端的参数有好几项,并且参数完全取决于用户的输入,是会变的,该怎么做呢?
比如,我需要查询客户表,既可以按照客户名称进行过滤,同时如果已经限定了客户所在的区域,那我希望客户结果集只限定在用户选定的区域中。
在网上找了半天,发现这个帖子 ,但介绍的方法有点太复杂了。后来研究了一下发现,可以这么做:
<script type="text/javascript"> jQuery(function($) { $("#customer").autocomplete("util.do?opr=getCustomers", { minChars: 0, extraParams: {area:function(){return $('#customerArea').val();}}, formatResult: function(customer) { return customer.id; } }); }); </script>
其中customerArea 是客户所属区域的输入框id,也可以换成下拉框。
页面代码:
客户区域:
<input id="customerArea" size="20" type="text" />
选择客户:
<input id="customer" size="20" type="text" />