Comment changer le texte d'une étiquette?


175

J'ai une liste de boutons radio et en cliquant sur le bouton radio, je dois changer le texte de son étiquette. Mais pour une raison quelconque, cela ne fonctionne pas. Le code est ci-dessous:

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

Je ne suis pas un gars d'ASP.NET mais je pense que l'identifiant généré pour le navigateur ne conserve pas l'identifiant que vous lui avez fourni côté serveur. Faites une vue source et collez le code correspondant ici.
Allain Lalonde

Réponses:



275

J'avais le même problème parce que j'utilisais

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

J'ai appris que vous pouvez soit utiliser la méthode jquery provisoire pour l'effacer d'abord, puis ajouter:

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

Ou par convention, vous pouvez utiliser:

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

OU

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

J'applique la même chose mais ne fonctionne pas. J'ai utilisé des pages enfants. Comment j'écris dans les pages enfants. J'écris $('#contentPlaceHolderId_LabelID')ça ne marche pas. Je change également le ClientMode en Static mais aucun travail. Veuillez aider.
Salman Mushtaq

J'ai utilisé $('[id*=LabelID]').text("some value");parce que mon contrôle était le contrôle du serveur.
Ashi

45

Essaye ça:

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

Le id$=correspondra aux éléments qui se terminent par ce texte, ce qui permet à ASP.NET de générer automatiquement les ID. Vous pouvez le rendre plus sûr en utilisant, span[id=$=lblVessel]mais ce n'est généralement pas nécessaire.



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

Je viens de traverser cela moi-même et j'ai trouvé la solution. Voir un contrôle serveur d'étiquettes ASP.NET est en fait redéfini comme une étendue (pas une entrée), donc l'utilisation de la propriété .val () pour obtenir / définir ne fonctionnera pas. Au lieu de cela, vous devez utiliser la propriété 'text' sur la plage en conjonction avec l'utilisation de la propriété .ClientID des contrôles. Le code suivant fonctionnera:

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

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

L'étiquette ASP.net sera rendue sous forme d'étendue dans le navigateur. donc l'utilisateur «html».


2

nous devons trouver l'étiquette d'étiquette pour la valeur d'attribut en fonction de cela. Nous avons remplacé le texte d'étiquette.

Scénario:

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

Vous voulez plus de détails .Cliquez ici


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.