这个时候我们就要考虑修改修改一下jquery.autoComplete了,我们先看一下代码,代码有一个onChange事件,这是一个解发事件,我们可以在这里添加一个回调函数来解决问题。首先我们要为options中添加一个参数叫onBegin,大致就在400行左右吧,有一行这样的代码:
$.Autocompleter.defaults =我们在后面添加一段
onBegin: null,然后我们找到onChange事件,约在226行,代码如下:
function onChange(crap, skipPrevCheck)在函数时里面添加如下代码:
if (options.onBegin) {
var op = options.onBegin(options);
if (op) {
$.extend(options, op);
}
}
这段代码被修改过后看起来就像这样:
function onChange(crap, skipPrevCheck) {
//2010-01-27 ,添加onBegin函数,以便在启动onChange的时候,可以重新设置options
if (options.onBegin) {
var op = options.onBegin(options);
if (op) {
$.extend(options, op);
}
}
//end
if( lastKeyPressCode == KEY.DEL ) {
select.hide();
return;
}
var currentValue = $input.val();
if ( !skipPrevCheck && currentValue == previousValue )
return;
previousValue = currentValue;
currentValue = lastWord(currentValue);
if ( currentValue.length >= options.minChars) {
$input.addClass(options.loadingClass);
if (!options.matchCase)
currentValue = currentValue.toLowerCase();
request(currentValue, receiveData, hideResultsNow);
} else {
stopLoading();
select.hide();
}
};再来看调用:
/*客户名称自动匹配*/
function customerAutoComplete(){
$("#customerFullName").autocomplete(encodeURI("/approvalajax/salesOrderApproval_findCustomerList"), {
/**加自定义表头**/
tableHead: "<div><span style='width:40%' class='col-1'>客户编码</span> <span style='width:58%' class='col-2'>客户名称</span></div>",
minChars: 0,
width: 310,
multiple: false,
mustMatch: false,
matchContains: false,
matchSubset: false,
autoFill: false,
onBegin: function(options) { //修改--用于动态改变ledger的值
options.extraParams.ledger= $("#ledger").val();
return options;
},
//extraParams: {ledger:$("#ledger").val()},










