我在母版页上苦苦寻求jQuery-UI Autocomplete
我按顺序加载了jQuery.js和jQuery-ui.js,在母版页的head部分。
我确实需要做的是非常普遍,但也许它在主页面上的想法正在阻碍。
以下<body>
代码将填充自动填充输入(id = autocomplete),其中包含ajax调用之外的硬编码值。
我意识到为数据调用ajax并没有使用它是没用的,但我稍后会处理它......宝贝步骤
<%-- Trying some autocomplete stuff --%>
<label for="autocomplete" style="color:yellow;">Language: </label>
<input id="autocomplete" />
<script type="text/javascript">
var wsUrl = '<%= ResolveUrl("http://localhost/CommonContent/CCWebService.asmx/HelloWorld") %>';
var fillMe = "[id$='autocomplete']";
$.ajax({
type: "POST",
url: wsUrl,
contentType: "application/json; charset=utf-8",
dataType: "text",
success: function (dave) {
alert(dave);
//FillAutocomplete(fillMe);
},
error: function (jqXHR, textStatus, errorThrown) {
alert("1!\n" + errorThrown + "\n" + jqXHR + "\n" + textStatus);
}
});
FillAutocomplete(fillMe);
function FillAutocomplete(id) {
autodata = ["c++-001", "java-002", "php-003", "coldfusion-004", "javascript-005", "asp-006", "ruby-007"];
alert(autodata);
//$("[id$='autocomplete']").autocomplete({
$(id).autocomplete({
source: autodata,
select: function (event, ui) {
var label = ui.item.label.split('-')[0];
alert(label);
var value = ui.item.value.split('-')[1];
alert(value);
//store in session
document.valueSelectedForAutocomplete = value
}
});
alert("Filled");
}
</script>
再次,这个工作(但数据是硬编码的)。我按以下顺序收到警报:ajax成功,然后是autodata,然后填写通知
此外,如果我将fillMe变量设置为“#autocomplete”,或者我在FillAutocomplete函数中对其进行硬编码,则它可以工作。
显然,由于它可以工作,输入可以具有自动完成属性。
以下是我试过的其他地方,我只是得到了 对象不支持属性或方法'autocomplete'
//FillAutocomplete
)(注释另一个调用)$(function() {
$('#autocomplete).autcomplete({...
<#='autocomplete.ClientID()'#>
我有一种潜在的怀疑,它没有找到控件,而不是控件没有支持它。
有什么想法吗?
更新:更多信息 我已经添加了下面的屏幕截图,以显示其完整荣耀中的错误。抱歉重复自己,但我想知道是否是由于母版页以某种方式,或者某种方式jquery-ui没有在调用自动完成方法之前加载(因为它是“对象不支持....”)< / p>
原因和解决方案:
似乎Ajax调用试图在加载远程文件jQuery-UI之前完成。正如下面的评论中建议的 RAM ,我下载了所有远程文件,现在它们已成为项目的一部分。现在脚本以正确的顺序加载,并且输入上有自动完成方法。谢谢 RAM 。
答案 0 :(得分:1)
以下是如何在asp.net中使用jquery自动完成的示例 http://www.dotnetlearners.com/blogs/view/102/JQuery-ajax-autocomplete-extender-textbox-using-json-response-type.aspx
答案 1 :(得分:0)
Ajax调用试图在加载远程文件jQuery-UI之前完成。在评论中建议 RAM ,我下载了所有远程文件,它们是项目的一部分。现在脚本以正确的顺序加载,并且输入上有自动完成方法。
感谢 RAM - 这样做了。