Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态设置asp.net文本框工具提示_Javascript_Jquery_Asp.net_Tooltip - Fatal编程技术网

Javascript 动态设置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.net文本框:

    <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>