所以我在ASPX页面中有这个代码。我试图在同一页面的文本框中使用它,但没有成功。但是,我可以在我的母版页的文本框中使用该脚本吗?任何帮助将不胜感激,谢谢
<asp:Content runat="server" ID="FeaturedContent"
ContentPlaceHolderID="FeaturedContent">
<script src="jquery-1.12.1.js"></script>
<script src="jquery-ui.js"> </script>
<link href="jquery-ui.css" rel="stylesheet" />
<script type="text/javascript">
$(document).ready(function () {
$('#txtStationName').autocomplete({
source: 'StationHandler.ashx'
});
});
</script>
<asp:TextBox ID="txtStationName" runat="server">
</asp:TextBox>
答案 0 :(得分:5)
由于您的<asp:TextBox ID="txtStationName" runat="server">
是服务器端组件。 .NET将使用您的ID附加特定值。这种情况可能有两种解决方案。
1)您可以使用ClientIDMode="Static"
使生成的ID保持一致
<asp:Content runat="server" ID="FeaturedContent"
ContentPlaceHolderID="FeaturedContent">
<script src="jquery-1.12.1.js"></script>
<script src="jquery-ui.js"> </script>
<link href="jquery-ui.css" rel="stylesheet" />
<script type="text/javascript">
$(document).ready(function () {
$('#txtStationName').autocomplete({
source: 'StationHandler.ashx'
});
});
</script>
<asp:TextBox ID="txtStationName" runat="server" ClientIDMode="Static">
</asp:TextBox>
2)或者从开发者控制台找到在DOM上生成的确切ID,并在该元素上使用js。
答案 1 :(得分:2)
asp.net编译器将更改文本框的ID。为了防止这种情况,您需要执行以下操作:
<asp:TextBox ID="txtStationName" runat="server" ClientIdMode="static">
</asp:TextBox>
答案 2 :(得分:1)
我建议您在代码中尝试使用classname
<asp:TextBox CssClass="uniquetxtStationName" ID="txtStationName" runat="server">
</asp:TextBox>
并在脚本中使用它:
$('.uniquetxtStationName').autocomplete({
source: 'StationHandler.ashx'
});
背后的原因:aspx将更新您的所有服务器标签ID,因此您无法直接将标签的实际ID用于javascript函数。
答案 3 :(得分:0)
你有两个工作选择,一个是另一个是类
<asp:TextBox CssClass="clstext" ID="txtauto" runat="server">
</asp:TextBox>
您使用的课程
$('.clstext').autocomplete({
source: 'StationHandler.ashx'
});
如果您使用id
<asp:TextBox ID="txtStationName" runat="server" ClientIdMode="static">
$('.txtStationName').autocomplete({
source: 'StationHandler.ashx'
});