Javascript 动态设置asp.net文本框工具提示
我有一个asp.net文本框:Javascript 动态设置asp.net文本框工具提示,javascript,jquery,asp.net,tooltip,Javascript,Jquery,Asp.net,Tooltip,我有一个asp.net文本框: <asp:TextBox runat="server" id="tb" ToolTip="A" />. 我将根据下拉列表的默认值将工具提示设置为初始值。当它改变时,我需要设置工具提示 我在网上看到并尝试过几种解决方案,但都无法奏效 我使用的是VS 2008和IE7,该站点使用的是VS服务器,而不是IIs。我已验证是否有正确的字段,并且可以使用调试器更改“标题” 提前谢谢你我这样试过: <asp:TextBox runat="server
<asp:TextBox runat="server" id="tb" ToolTip="A" />.
我将根据下拉列表的默认值将工具提示设置为初始值。当它改变时,我需要设置工具提示
我在网上看到并尝试过几种解决方案,但都无法奏效
我使用的是VS 2008和IE7,该站点使用的是VS服务器,而不是IIs。我已验证是否有正确的字段,并且可以使用调试器更改“标题”
提前谢谢你我这样试过:
<asp:TextBox runat="server" ID='txtSomething' ToolTip='Some tooltip' CssClass='myTextBox'></asp:TextBox>
呈现时,我的文本框会将“其他工具提示”显示为其标题使用jQuery时的类似内容:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
<script type="text/javascript">
$(function () {
$("#<%=DropDownList1.ClientID %>").change(function () {
var tooltip = "B";
var val = $(this).val();
if (val == "One") {
tooltip = "A";
}
$("#<%=TextBox1.ClientID %>").attr('title', tooltip);
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:DropDownList ID="DropDownList1" runat="server">
<asp:ListItem Text="One" />
<asp:ListItem Text="Two" />
<asp:ListItem Text="Three" />
</asp:DropDownList>
<asp:TextBox ID="TextBox1" runat="server" ToolTip="A"></asp:TextBox>
</form>
</body>
</html>
$(函数(){
$(“#”)更改(函数(){
var tooltip=“B”;
var val=$(this.val();
如果(val=“一”){
工具提示=“A”;
}
$(“#”)attr('title',工具提示);
});
});
更新-类选择器方式:
$(function () {
$('.myddl').change(function () {
var tooltip = "B";
var val = $(this).val();
if (val == "One") {
tooltip = "A";
}
$('.mytb').attr('title', tooltip);
});
});
<asp:DropDownList ID="DropDownList1" runat="server" CssClass="myddl">
<asp:TextBox ID="TextBox1" runat="server" ToolTip="A" CssClass="mytb"></asp:TextBox>
$(函数(){
$('.myddl').change(函数(){
var tooltip=“B”;
var val=$(this.val();
如果(val=“一”){
工具提示=“A”;
}
$('.mytb').attr('title',工具提示);
});
});
我在问题中列出的代码起作用,并且会更改工具提示。问题在于创建网站的人以及他对CSS和Javascript/JQuery/Json的阴谋;不知何故,访问工具提示的功能被禁用。您使用的是哪个.net版本?VS 2008 Framework 3.5,很抱歉,之前应该提到这一点。您是在客户端还是服务器端尝试执行此操作?您的DDL是否设置为autopostback?一切都是客户端的,创建站点的人几乎不需要在服务器上完成任何工作。这段代码将驻留在DDL更改时调用的客户端函数中。我尝试过这一点,但没有成功,我甚至一直尝试强制它更改。我注意到ClientMode标签,这是2010年的新东西吗?我在2008年,没有它,它也会影响attr调用吗?仍然没有运气,“#”符号在代码的其余部分起作用。我还尝试了“document.getElementById”,但没有成功。我也试过用“工具提示”来代替标题“.tooltip”、“.option”。这太奇怪了……对页面上的内容进行firebug检查。检查类名是否正确应用。我查看了它与2008的对比,我无法加载Firebug,因为它破坏了机器,不受支持。在安装FireFox/Bug之后,我花了几个小时的技术支持来修复我的机器。我在任何地方都找不到工具提示,也找不到加载的初始值。当我在字段中输入数据时,它确实显示了正确的字段/#变量。我刚刚注意到您的CssClass='myTextBox'。你的代码是什么,因为我没有为我的文本框创建CssClass。即使使用“#”符号也不会更改工具提示。由于某些我无法理解的原因,代码将无法访问textbox控件。查看VS调试器中的“#TB”,它告诉我属性为空;如果我试图通过“#tb.attributes['title']”更改工具提示,则会出现运行时错误。Document.getelementbyID返回null。我尝试过使用1.5 JQuery,但没有效果。有什么东西阻止JQuery修改工具提示。我想它会的。你是如何运行你的代码的?IIs或Visual Studio?Visual Web Developer Express,我确信在IIs上运行时不会有任何区别。它们以不同的方式工作。我参与了一个项目,在这个项目中,我所有的开发都是使用IIs完成的,我需要使用的所有“加载项”都是使用VS进行测试的。它们都不起作用!此位置的环境不允许在我的计算机上使用IIs。如果您有VS或VWD Express 2010,您可能希望尝试IIs Express。VWD和IIS express是免费的。无论出于何种原因,如果clientID格式不起作用,您可以尝试使用类选择器版本。检查我的另一个代码片段。我终于让它工作了,问题是如何引用控件。使用“.mytb”或“#mytb”失败,我需要使用“[id$=mytb]”。
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
<script type="text/javascript">
$(function () {
$("#<%=DropDownList1.ClientID %>").change(function () {
var tooltip = "B";
var val = $(this).val();
if (val == "One") {
tooltip = "A";
}
$("#<%=TextBox1.ClientID %>").attr('title', tooltip);
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:DropDownList ID="DropDownList1" runat="server">
<asp:ListItem Text="One" />
<asp:ListItem Text="Two" />
<asp:ListItem Text="Three" />
</asp:DropDownList>
<asp:TextBox ID="TextBox1" runat="server" ToolTip="A"></asp:TextBox>
</form>
</body>
</html>
$(function () {
$('.myddl').change(function () {
var tooltip = "B";
var val = $(this).val();
if (val == "One") {
tooltip = "A";
}
$('.mytb').attr('title', tooltip);
});
});
<asp:DropDownList ID="DropDownList1" runat="server" CssClass="myddl">
<asp:TextBox ID="TextBox1" runat="server" ToolTip="A" CssClass="mytb"></asp:TextBox>