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>
Odpowiedzi:
ASP.Net automatycznie generuje unikalne identyfikatory klientów dla kontroli po stronie serwera .
Zmień to na
W ASP.Net 4.0 można również ustawić
ClientIDMode
właściwość naStatic
.źródło
Miałem ten sam problem, ponieważ używałem
Dowiedziałem się, że możesz użyć tymczasowej metody jQuery, aby najpierw ją wyczyścić, a następnie dołączyć:
Lub konwencjonalnie, możesz użyć:
LUB
źródło
$('#contentPlaceHolderId_LabelID')
że to nie działa. Zmieniam też ClientMode na Static, ale nie działa. Proszę pomóż.$('[id*=LabelID]').text("some value");
ponieważ moją kontrolą była kontrola serwera.Spróbuj tego:
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.źródło
Spróbuj tego
$("label").html(your value);
lub$("label").text(your value);
źródło
źródło
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:
źródło
Etykieta ASP.net zostanie wyświetlona jako zakres w przeglądarce. więc użytkownik „html”.
źródło
musimy na tej podstawie znaleźć znacznik etykiety dla wartości atrybutu. mamy zamianę tekstu etykiety.
Scenariusz:
HTML
Chcesz uzyskać więcej informacji. Kliknij tutaj
źródło
źródło