Como alterar o texto de um rótulo?


175

Eu tenho uma lista de botões de opção e, ao clicar no item do botão de opção, tenho que alterar o texto do rótulo. Mas, por alguma razão, não está funcionando. O código está abaixo:

<asp:Label ID="lblVessel" Text="Vessel:" runat="server"></asp:Label>

<script language="javascript">
  $(document).ready(function() {

    $('#rblDiv input').click(function() {
      var selected = $("#rblDiv input:radio:checked").val();
      if (selected == "exportpack") {
        $('#lblVessel').text("NewText");
      }
    });
  });
</script>

Eu não sou um cara do ASP.NET, mas acho que o ID gerado para o navegador não retém o ID que você forneceu no lado do servidor. Faça uma fonte de exibição e cole o código relevante aqui.
Allain Lalonde

Respostas:



275

Eu estava tendo o mesmo problema porque estava usando

$("#LabelID").val("some value");

Aprendi que você pode usar o método provisório de jquery para limpá-lo primeiro e depois anexá-lo:

$("#LabelID").empty();
$("#LabelID").append("some Text");

Ou convencionalmente, você pode usar:

$("#LabelID").text("some value");

OU

$("#LabelID").html("some value");

Eu aplico o mesmo, mas não está funcionando. Eu usei páginas filho. Como eu escrevo em páginas filho. Eu escrevo $('#contentPlaceHolderId_LabelID')isso não funciona. Também mudo o ClientMode para Static, mas não funciona. Por favor ajude.
Salman Mushtaq 17/02

eu usei $('[id*=LabelID]').text("some value"); porque meu controle era o controle do servidor.
Ashi

45

Tente o seguinte:

$('[id$=lblVessel]').text("NewText");

Ele id$=corresponderá aos elementos que terminam com esse texto, e é assim que o ASP.NET gera automaticamente IDs. Você pode torná-lo mais seguro, span[id=$=lblVessel]mas geralmente isso não é necessário.


15

tente isso

$("label").html(your value); ou $("label").text(your value);


5
<asp:RadioButtonList ID="rbtnType" runat="server">
    <asp:ListItem Value="C">Co</asp:ListItem>
    <asp:ListItem Value="I">In</asp:ListItem>
    <asp:ListItem Value="O">Out</asp:ListItem>
</asp:RadioButtonList>
<br />
<asp:Label ID="lblLabelName" runat="server"></asp:Label>
<script type="text/javascript">
    $(document).ready(function() {
        $("#<%=rbtnType.ClientID%>").change(function() {
            var rbvalue = $("input[@name=<%=rbtnType.ClientID%>]:radio:checked").val();
            if (rbvalue == "C") {
                $('#<%=lblLabelName.ClientID %>').html('text1');
            } else if (rbvalue == "I") {
                $('#<%=lblLabelName.ClientID %>').html('else text2');
            } else if (rbvalue == "O") {
                $('#<%=lblLabelName.ClientID %>').html('or elsethistext');
            }
        });
    });
</script>

4

Eu mesmo passei por isso e encontrei a solução. Veja que um controle de servidor de rótulo do ASP.NET na verdade é redistribuído como extensão (não como entrada); portanto, o uso da propriedade .val () para obter / definir não funcionará. Em vez disso, você deve usar a propriedade 'text' no intervalo, em conjunto com o uso da propriedade .ClientID dos controles. O código a seguir funcionará:

$("#<%=lblVessel.ClientID %>").text('NewText');

3
$('#<%= lblVessel.ClientID %>').html('New Text');

O rótulo do ASP.net será renderizado como uma extensão no navegador. então usuário 'html'.


2

precisamos encontrar a etiqueta do rótulo para o valor do atributo com base nisso. substituímos o texto da etiqueta.

Roteiro:

<script type="text/javascript">
$(document).ready(function() 
{ 
$("label[for*='test']").html("others");
});

</script>

Html

<label for="test_992918d5-a2f4-4962-b644-bd7294cbf2e6_FillInButton">others</label>

Você deseja obter mais detalhes. Clique aqui


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.