จะเปลี่ยนข้อความของฉลากได้อย่างไร?


175

ฉันมีรายการวิทยุกระจายเสียงและเมื่อคลิกที่รายการปุ่มตัวเลือกฉันต้องเปลี่ยนข้อความของฉลาก แต่ด้วยเหตุผลบางอย่างมันไม่ทำงาน รหัสด้านล่าง:

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

ฉันไม่ใช่คน ASP.NET แต่ฉันคิดว่ารหัสที่สร้างขึ้นสำหรับเบราว์เซอร์ไม่ได้เก็บ ID ที่คุณให้ไว้ในฝั่งเซิร์ฟเวอร์ ทำมุมมองซอร์สโค้ดและวางโค้ดที่เกี่ยวข้องที่นี่
Allain Lalonde

คำตอบ:


58

ASP.Net โดยอัตโนมัติสร้างรหัสลูกค้าที่ไม่ซ้ำกันสำหรับการควบคุมด้านเซิร์ฟเวอร์

เปลี่ยนเป็น

 $('#<%= lblVessel.ClientID %>')

ใน ASP.Net 4.0 คุณสามารถตั้งค่าClientIDModeคุณสมบัติเป็นStaticแทนได้


275

ฉันมีปัญหาเดียวกันเพราะฉันใช้

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

ฉันได้เรียนรู้ว่าคุณสามารถใช้วิธี jquery ชั่วคราวเพื่อล้างมันก่อนแล้วจึงต่อท้าย:

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

หรือแบบธรรมดาคุณสามารถใช้:

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

หรือ

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

ฉันสมัครเหมือนกัน แต่ไม่ทำงาน ฉันใช้หน้าย่อย ฉันจะเขียนหน้าย่อยได้อย่างไร ฉันเขียน$('#contentPlaceHolderId_LabelID')มันไม่ทำงาน ฉันยังเปลี่ยนโหมดลูกค้าเป็นแบบคงที่ แต่ไม่ทำงาน กรุณาช่วย.
Salman Mushtaq

ฉันใช้$('[id*=LabelID]').text("some value");เพราะการควบคุมของฉันคือการควบคุมเซิร์ฟเวอร์
Ashi

45

ลองสิ่งนี้:

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

id$=จะตรงกับองค์ประกอบที่ลงท้ายด้วยข้อความที่ซึ่งเป็นวิธีการ ASP.NET อัตโนมัติสร้างรหัส คุณสามารถทำให้ปลอดภัยยิ่งขึ้นโดยใช้span[id=$=lblVessel]แต่โดยทั่วไปไม่จำเป็น



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

ฉันเพิ่งผ่านสิ่งนี้ไปและพบวิธีแก้ปัญหา ดูตัวควบคุมเซิร์ฟเวอร์ ASP.NET ป้ายจริงรับ redered เป็นช่วง (ไม่ใส่) เพื่อใช้ .val () คุณสมบัติที่จะได้รับ / ชุดจะไม่ทำงาน คุณต้องใช้คุณสมบัติ 'text' แทนการขยายโดยใช้คุณสมบัติ. clientid รหัสต่อไปนี้จะใช้งานได้:

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

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

ASP.net Label จะแสดงเป็นช่วงในเบราว์เซอร์ ดังนั้นผู้ใช้ 'html'


2

เราต้องค้นหาป้ายกำกับฉลากสำหรับค่าคุณสมบัติตามนั้นเราได้แทนที่ข้อความฉลาก

สคริปต์:

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

คุณต้องการรายละเอียดเพิ่มเติมคลิกที่นี่


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.