Javascript 未捕获类型错误:无法读取属性';自动完成';未定义的
很长一段时间以来,我一直在为我们的主页输入框使用自动完成逻辑&它工作得很好,但今天它突然不工作了&在这行代码上显示错误Javascript 未捕获类型错误:无法读取属性';自动完成';未定义的,javascript,jquery,autocomplete,monkeypatching,Javascript,Jquery,Autocomplete,Monkeypatching,很长一段时间以来,我一直在为我们的主页输入框使用自动完成逻辑&它工作得很好,但今天它突然不工作了&在这行代码上显示错误 jQuery.ui.autocomplete.prototype._renderItem = function( ul, item) { 错误:未捕获类型错误:无法读取未定义的属性“自动完成” 这个自动完成逻辑的完整代码是 <script type="text/javascript"> function monkeyPatchAutocomplete() {
jQuery.ui.autocomplete.prototype._renderItem = function( ul, item) {
错误:未捕获类型错误:无法读取未定义的属性“自动完成”
这个自动完成逻辑的完整代码是
<script type="text/javascript">
function monkeyPatchAutocomplete() {
jQuery.ui.autocomplete.prototype._renderItem = function( ul, item) {
var re = new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + this.term + ")(?![^<>]*>)(?![^&;]+;)", "gi");
var t = item.label.replace(re,"<span style='font-weight:bold;color:#434343;'>" +
"$&" +
"</span>");
return jQuery( "<li></li>" )
.data( "item.autocomplete", item )
.append( "<a>" + t + "</a>" )
.appendTo( ul );
};
}
function getKeywords(){
var allKeywords = <?php echo json_encode($allKeywords); ?>;
return allKeywords;
}
var URL = '<?php e(SITE_URL); ?>fronts/search';
jQuery(document).ready(function(){
monkeyPatchAutocomplete();
var username = jQuery('#username');
username.autocomplete({
minLength : 1,
source : URL
});
var CityKeyword = jQuery('#CityKeyword');
CityKeyword.autocomplete({
minLength : 1,
source : getKeywords()
});
});
// A custom jQuery method for placeholder text:
jQuery.fn.defaultText = function(value){
var element = this.eq(0);
element.data('defaultText',value);
element.focus(function(){
if(element.val() == value){
element.val('').removeClass('defaultText');
}
}).blur(function(){
if(element.val() == '' || element.val() == value){
element.addClass('defaultText').val(value);
}
});
return element.blur();
}
</script>
函数monkeyPatchAutocomplete(){
jQuery.ui.autocomplete.prototype.\u renderItem=function(ul,item){
var re=new RegExp((?![^&;]+;)(?!)(?![^&;]+;),“gi”);
var t=项目.标签.替换(重“”+
"$&" +
"");
返回jQuery(“”)
.data(“item.autocomplete”,item)
.append(“+t+”)
.附录(ul);
};
}
函数getKeywords(){
var-allKeywords=;
返回所有关键字;
}
var URL='前沿/搜索';
jQuery(文档).ready(函数(){
monkeyPatchAutocomplete();
var username=jQuery('#username');
username.autocomplete({
最小长度:1,
来源:URL
});
var CityKeyword=jQuery(“#CityKeyword”);
CityKeyword.autocomplete({
最小长度:1,
来源:getKeywords()
});
});
//占位符文本的自定义jQuery方法:
jQuery.fn.defaultText=函数(值){
var元素=该等式(0);
元素数据('defaultText',值);
元素。焦点(函数(){
if(element.val()==值){
element.val(“”).removeClass('defaultText');
}
}).blur(函数(){
if(element.val()=''| element.val()==值){
元素.addClass('defaultText').val(值);
}
});
返回元素blur();
}
请分享可能导致此问题的原因。我假设没有名为“username”的元素或没有名为“CityKeyword”的元素。加载jQuery UI时可能会出错,因为
jQuery.UI
返回未定义的否@AndureAnderson“username”和“CityKeyword”被分配给输入框的id名称