如何在母版页中为内容页中定义的控件调用 jqueryui 自动完成功能



我正在尝试在aspx内容页中定义的文本框上触发自动完成jQueryUI小部件。

我对 jQuery-ui.js 文件的引用位于母版页的 head 部分。

自动完成调用是在页面底部母版页的脚本块中进行的。

我知道内容页中定义的控件的 id 与输出页中生成的 id 不同,因此我对控件的引用(在母版页的脚本部分中(是输出页中显示的正确 id(ctl00_Content_txtEmailAddress_txtText(。

页面加载时出现以下异常。 任何帮助,非常感谢。

Uncaught TypeError: $(...).autocomplete is not a function 
at HTMLDocument.<anonymous> (PasswordReset.aspx?r=P1.WEBGUEST&f=P1.EPR.USERPASS.VIW:376)
at fire (jquery.js:974)
at Object.fireWith [as resolveWith] (jquery.js:1084)
at Function.ready (jquery.js:406)
at HTMLDocument.DOMContentLoaded (jquery.js:83)

我在下面包含了内容和母版页的片段

内容页面:

<p1:CustomisableTextBox ID="txtEmailAddress" runat="server" SkinID="Block" 
Mandatory="true" MandatoryValidation="true" CanDisable="false" 
CanChangeMandatory="false" />

母版页:

<script type="text/javascript">
$(document).ready(function () {
$("#ctl00_Content_txtEmailAddress_txtText").autocomplete({
source: 'AutocompleteHandler.ashx'
});
});
</script>

我对这个查询想了很多,我突然想到,如果未定义自动完成,那么提供小部件的 js 文件一定有问题。 我把它归结为几件事。

  1. 文件未加载
  2. jquery-ui 文件和 jquery 文件之间存在问题/冲突
  3. 将 jquery 文件加载到浏览器中的顺序存在问题
  4. 调用自动完成函数的代码块错误地放置在母版页中。

有趣的是,我尝试了上述每种排列的几种排列,最终使文件加载而没有错误。 唯一的问题是自动完成不会触发!! 当我完全解决这个问题时,我会再次发布,并希望这对某人的悲伤和浪费的时间有所帮助。

最新更新