gpt4 book ai didi

jquery - 未捕获的 RangeError : Maximum call stack size exceeded in jquery autocomplete 1. 10 版本

转载 作者:行者123 更新时间:2023-12-01 04:10:04 24 4
gpt4 key购买 nike

Here is my code to implement autocomplete of jquery ui 1.10 on 8 comboboxes on my page. i am getting maximum call stack size exceeding.

通过谷歌搜索我才知道背后的原因 对代码中某些函数的无限调用出错。我已经对焦点、选择、更改等事件进行了一一注释,以查看哪个事件是通过我的代码中的多次调用进行的。但评论后发生的事件所有事件错误仍然存​​在。此错误挂起 Firefox 浏览器一段时间了。感谢您有兴趣帮助解决此问题。

    $(function(){

$("input[name^='TextRogue'],input[name^='TextBrand']").each(function(index,value){

$(this).autocomplete({
minLength: 0,
source: users,

focus: function( event, ui ) {
$(this).val( ui.item.LoginID);
return false;
},
select: function( event, ui ) {

var Name=ui.item.FirstName;
if(ui.item.LastName && ui.item.LastName!='')
{
Name+=" "+ui.item.LastName;
}
$(this).val( ui.item.LoginID+" ("+Name+")" );
var name= $(this).attr('name');
var prefix='';
if(name.lastIndexOf('Rogue')!=-1)
{
prefix='Rogue';
}
else
{
prefix='Brand';
}
var underscore_index=name.lastIndexOf('_');
var suffix=name.substr(underscore_index);
$("#"+prefix+suffix).val( ui.item.UserID );
// code remove from here..

return false;
},
source: function (request, response) {
// var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");
var matcher = new RegExp("^" + $.ui.autocomplete.escapeRegex(request.term), "i");
var matching = $.grep(users, function (value) {
var LoginID = value.LoginID;
var Email = value.Email;

return matcher.test(LoginID) || matcher.test(Email);
});
response(matching);
},
change: function(event,ui){ if(!ui.item){
// The item selected from the menu, if any. Otherwise the property is null
//so clear the item for force selection
$(this).val("");
// also clear the hidden field containing values related to previous selection
var name= $(this).attr('name');
var prefix='';
if(name.lastIndexOf('Rogue')!=-1)
{
prefix='Rogue';
}
else
{
prefix='Brand';
}
var underscore_index=name.lastIndexOf('_');
var suffix=name.substr(underscore_index);
$("#"+prefix+suffix).val('');
}

}
})
.data( "ui-autocomplete" )._renderItem = function( ul, item ) {
var Name=item.FirstName;
if(item.LastName && item.LastName!='')
{
Name+=" "+item.LastName;
}
return $( "<li>" )
.append( "<a>" + item.LoginID +" ("+Name+")<br><span style='font-size:12px;'>" + item.Email + "</span></a>" )
.appendTo( ul );
};

});
fillSuggestedBrand();
fillSuggestedRogue();

});

最佳答案

错误现已解决,只需将 minLength: 0 选项更改为大于 0 的整数,它就可以正常工作,因为当输入框通过从输入框中逐一删除字符而清空时,它不会触发自动完成请求。

关于jquery - 未捕获的 RangeError : Maximum call stack size exceeded in jquery autocomplete 1. 10 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21695770/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com