Jak zmienić tekst etykiety?


175

Mam listę radiobuttonów i po kliknięciu na przycisk opcji muszę zmienić tekst jego etykiety. Ale z jakiegoś powodu to nie działa. Kod poniżej:

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

Nie jestem facetem od ASP.NET, ale myślę, że identyfikator wygenerowany dla przeglądarki nie zachowuje identyfikatora podanego dla niego po stronie serwera. Wyświetl źródło i wklej tutaj odpowiedni kod.
Allain Lalonde

Odpowiedzi:



275

Miałem ten sam problem, ponieważ używałem

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

Dowiedziałem się, że możesz użyć tymczasowej metody jQuery, aby najpierw ją wyczyścić, a następnie dołączyć:

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

Lub konwencjonalnie, możesz użyć:

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

LUB

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

Stosuję to samo, ale nie działa. Użyłem stron podrzędnych. Jak piszę na stronach podrzędnych. Piszę, $('#contentPlaceHolderId_LabelID')że to nie działa. Zmieniam też ClientMode na Static, ale nie działa. Proszę pomóż.
Salman Mushtaq

Użyłem, $('[id*=LabelID]').text("some value");ponieważ moją kontrolą była kontrola serwera.
Ashi

45

Spróbuj tego:

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

id$=Dopasuje elementy, które kończą się tym tekstem, który jest jak ASP.NET automatycznie generuje identyfikatory. Możesz uczynić go bezpieczniejszym, span[id=$=lblVessel]ale zwykle nie jest to konieczne.


15

Spróbuj tego

$("label").html(your value); lub $("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

Po prostu przeszedłem przez to sam i znalazłem rozwiązanie. Zobacz, że formant serwera etykiet ASP.NET jest w rzeczywistości przetwarzany jako zakres (a nie dane wejściowe), więc użycie właściwości .val () do get / set nie będzie działać. Zamiast tego należy użyć właściwości „text” w zakresie w połączeniu z użyciem właściwości controls .ClientID. Poniższy kod zadziała:

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

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

Etykieta ASP.net zostanie wyświetlona jako zakres w przeglądarce. więc użytkownik „html”.


2

musimy na tej podstawie znaleźć znacznik etykiety dla wartości atrybutu. mamy zamianę tekstu etykiety.

Scenariusz:

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

Chcesz uzyskać więcej informacji. Kliknij tutaj


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.