【问题标题】:How to set text to label with jQuery?如何使用 jQuery 将文本设置为标签?
【发布时间】:2011-08-08 18:06:35
【问题描述】:

我想在单击按钮后使用 jQuery 将文本设置为标签。我编写了代码并且它可以工作,但是在我在标签中设置文本后,标签返回他的旧状态。这是我的代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="DynamicWebApplication.WebForm2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

    <head runat="server">
        <title></title>

        <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
        <script type="text/javascript">
            function f() 
            {
                $('#<%=Label1.ClientID%>').html("hello");  
            }
        </script>
    </head>

    <body>
        <form id="form1" runat="server">
            <div>
                <asp:Label ID="Label1" runat="server"></asp:Label>
                <p></p>
                <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="f();"/>
            </div>
        </form>
    </body>

</html>

【问题讨论】:

    标签: jquery asp.net button label set


    【解决方案1】:

    如果您的按钮导致回发,则重新加载页面后更改将丢失。试试这个 -

    function f() 
            {
                $('#<%=Label1.ClientID%>').html("hello"); 
                return false;  
            }
    

    【讨论】:

    • 你看到了什么行为?标签是否更改然后页面刷新并且更改消失了?
    • 标签更改,更改已消失,页面未刷新。
    • 对不起,你是对的。标签更改然后页面刷新并且更改已经消失
    • 如果您将 'OnClientClick="f();"' 更改为 'OnClientClick="f();return false;"' 会有什么不同吗?你有其他链接到页面的jQuery函数吗?
    • 是的 - 它停止页面回发。您的 jQuery 代码正在更新标签,但单击按钮会导致页面将表单数据发送回自身,因此您的 jQuery 更改丢失。
    【解决方案2】:

    标签不保持视图状态。服务器不会将该信息发布回服务器。您可以尝试在标签上显式启用 ViewState,但如果这不起作用,则必须将该值存储在隐藏字段中。

    <asp:Label ID="Label1" runat="server" EnableViewState="true"></asp:Label>
    

    【讨论】:

    • 不清楚,将该值存储在隐藏字段中是什么意思。你会写代码吗?
    • 我已经找到了解决方案。 'OnClientClick="f();"' 为 'OnClientClick="f();return false;
    【解决方案3】:

    可以使用text方法设置文字

    <asp:Button ID="Button1" runat="server" Text="Button" OnClick="return f();"/>
    
    function f() 
        {
            $('#<%=Label1.ClientID%>').html("hello"); 
            return false;  
        }
    

    【讨论】:

    • 您的页面是否在按钮点击时发布到服务器?
    • 在这种情况下,您应该从函数中return false 停止页面提交。
    • 不,你可以看到我所有的代码。我没有在文件 .css 中写任何东西
    【解决方案4】:

    我会用这个,

    $('#<%=Label1.ClientID%>').text("hello");
    

    【讨论】:

      【解决方案5】:
      <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="return f();"/>
      
      function f() 
      {
          $('#<%=Label1.ClientID%>').html("hello"); 
          return false;  
      }
      

       <asp:Button ID="Button1" runat="server" Text="Button" />
      
      $(document).ready(function(){
        $('#<%=Button1.ClientID%>').click(function(){
          $('#<%=Label1.ClientID%>').html("hello");
          return false; 
         });
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-05
        • 1970-01-01
        相关资源
        最近更新 更多