高分求高手,jquery的autocomplete如何自定义触发事件?
想知道autocomplete如何自定义触发事件,如下列js代码,输入3个字符后会触发这个事件去后台检索,但我不想这样触发,因为频繁检索对数据库压力太大,我想比如页面上加个按钮,输入完id后(3个或4,5个字符后),点击按钮触发自动完成功能,该怎么做呢,需要改造jquery.autocomplete.js吗?请详细告知。
function cqlautocompleteCodeType(codeTypeFieldId,url)
{
	$("#"+codeTypeFieldId).autocomplete(url,
	{
			delay:10,
			minChars:3,
			cacheLength:2,
			scroll:true,
		    dataType:'json',
		    multiple:false,
		    mustMatch:true,
		    parse:function(data){
				var parsed=[];
				for(var i=0;i<data.length;i++)  
				{
					parsed[parsed.length]={
							data:data[i],
							value:data[i].codetype,
							result:data[i].codetype
					};
				}
			return parsed;
			},
		    formatItem:function(data){
		    			return data.codetype;
					},
			formatResult:function(data){
						return data.codetype;
					},
		    autoFill:true
		}).result(function(event, data, formatted)
			{
				if(data)
				{	
					$("#"+codeTypeFieldId).val(data.codetype);
				}
	    	 });
}
------解决方案--------------------可以:
添加一个button的onclick事件 onclick="lookupAjax();"
编写lookupAjax();
function lookupAjax(){
	var oSuggest = $("#id")[0].autocompleter;
	oSuggest.findValue();
	return false;
}
//参看  http://www.pengoworks.com/workshop/jquery/autocomplete.htm
------解决方案--------------------
改造是最好的办法了。。找到注册的keydown或者keyup事件取消掉,做成一个过程,并取消字符字数检查现在,提供给外部调用,外部调用这个函数就好了
------解决方案--------------------
调用时加多个参数
rel:{target:$('#mybtn'),event:'click'}
target:一个jquery对象,我这里举例传的是一个id=mybtn的按钮
event:触发事件的方式。我举的例子里面传的是:click。你也可以mouseover之类的