我之前有一个旧的自动完成脚本,在输入表单上运行旧的jQuery。我想将markItUp添加到我的文本输入表单中,我使用的自动完成版本不再使用较新的jQuery。
我看到jquery-ui.js中有最新的自动完成功能,但安装完成后我开始收到以下警告:
错误:在初始化之前无法调用自动完成方法; 试图调用方法'/include/suggest.php'
我查找了初始化并在$(document).ready(function()
之后添加了此内容:
$(this.target).find('input').autocomplete();
相同的错误消息。所以我试着让它更具体地适用于自动完成的输入字段:
$(this.target).find("input[id^='last_']").autocomplete();
我在这里有点失明。这个页面的自动完成内容是由我无法访问的人完成的,我自己从未真正写过jQuery的东西。我试图理解这一点,但现在,我很难过。
这是页面的骨架:
<script src="/jquery/1.9.1/jquery.min.js"></script>
<link rel="stylesheet" href="/inc/auto/main.css" type="text/css" />
<link rel="stylesheet" href="ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="/js/markitup/jquery.markitup.js"></script>
<script src="/js/markitup/sets/default/set.js"></script>
[markitup styles]
<script>
function html_entity_decode(str)
{
var ta=document.createElement("textarea");
ta.innerHTML=str.replace(/</g,"<").replace(/>/g,">");
return ta.value;
}
$(document).ready(function() {
$("#markItUp").markItUp(mySettings);
$(this.target).find('input').autocomplete();
$("input[id^='last_']").autocomplete('/include/suggest.php',{
matchCase:true,
formatItem: function(data, i, total)
{
var s=data[0].split(",")
return s.join(" ");
}
});
$("input[id^='last_']").result(function(event, data, formatted){
var ids=this.id.split('_')
var id=ids[1]; // from last_xx got xxx
var s=html_entity_decode(data[0]).split(",");
$(this).next().focus();
$(this).next().select();
//have only last value -- TAB pressed
if(s.length==1)return;
$('#first_'+id).val(s[0]);
$('#middle_'+id).val(s[1]);
$('#last_'+id).val(s[2]);
});
});
</script>
</head>
<body>
<h1>News Inserter</h1>
<form action="/forms/cronkite.shtml" accept-charset="UTF-8" method="POST">
Reporter (Last, First Middle):<br />
<input type="text" id="last_1" name="lastreporters" size="15" maxlength="30" value="" />, <input type="text" id="first_1" name="firstreporters" size="15" maxlength="30" value="" /><input type="text" id="middle_1" name="middlereporters" size="15" maxlength="30" value="" /><br />
Story:<br />
[markitup text area]
<input type="SUBMIT" value="Insert Data" /><input type="RESET" value="Reset" /><br />
</form>
问题仅出在我的初始化调用中吗?还有一点:我使用的自动完成版本是自动完成 - jQuery插件1.1pre版权所有2007.自动填充的jQuery-ui版本是否已经改变,我需要更新我的表单?
答案 0 :(得分:1)
由于旧版本的Jquery,我遇到了同样的问题,然后我添加了&#34; http://code.jquery.com/jquery-migrate-1.0.0.js&#34; Js现在一切正常。