2016-10-17 4 views
1

Ich versuche, den Wert eines Labels entsprechend dem ausgewählten Wert zu ändern, ändert aber den Wert überhaupt nicht.Checkbox checked aktualisiert ein Label nicht ASP/JavaScript

Was ich versuche zu tun ist, wenn seine checked dann Etikett wird als niedrig angezeigt, aber wenn nicht aktiviert, dann wäre der Wert in Ordnung.

C#

<asp:CheckBox ID="ddlHead" value="0" runat="server" onchange="HeadDamage(this.value);" /> 

JAVASCRIPT

function HeadDamage(Value) { 

    if (Value == 0) { 
     $('#<%= lblHeadDamage.ClientID %>').text("Ok"); 
    } 
    else if (Value == 1) 
     $('#<%= lblHeadDamage.ClientID %>').text("Low"); 
    } 
+0

Haben Sie in Ihrer Konsole Fehler haben? – Curt

Antwort

2

Ihr Snippet wird wegen zwei Gründen nicht funktionieren. Zunächst einmal hat ein Kontrollkästchen keinen Wert, es ist entweder markiert oder nicht. Zweitens, wenn Sie den HTML-Code betrachten, werden Sie sehen, dass asp.net das Kontrollkästchen mit einem <span> Element umschlossen hat.

<span onchange="HeadDamage(this.value)"><input id="mainContentPane_ddlHead" name="ctl00$mainContentPane$ddlHead" type="checkbox"></span> 

Dieses Element enthält die HeadDamage und damit Ihre Value wird immer null sein, da das span-Element keinen Wert haben.

Versuchen Sie, diesen Schnipsel mit dem Klick direkt auf das entsprechende Kästchen gebunden:

<asp:CheckBox ID="ddlHead" runat="server"/> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#<%= ddlHead.ClientID %>").click(function() { 
      if (this.checked == true) { 
       $('#<%= lblHeadDamage.ClientID %>').text("Ok"); 
      } else { 
       $('#<%= lblHeadDamage.ClientID %>').text("Low"); 
      } 
     }); 
    }); 
</script> 
1

durchaus ein paar Probleme mit dem Code Es gibt keine.

1. Das Attribut val des Kontrollkästchens ändert sich nie.

2. Die text()-Funktion von jQuery funktioniert nicht für ein Kontrollkästchen. Sie müssen eine Beschriftung daneben hinzufügen.

wird ein Beispiel sein:

<input type="checkbox" id="ddlHead" value="0" /> 
<label id="lblHead">low</label> 

// when DOM loads 
$(document).ready(function() { 

    // when the checkbox changes, run the following function 
    $(document).on('change', '#ddlHead', function() { 

    if ($(this).is(':checked')) { 
     // if this is checked 
     $('#lblHead').text('ok'); 
    } else { 
     // else, low 
     $('#lblHead').text('low'); 
    } 
    }); 
}); 

Arbeits Geige: https://jsfiddle.net/4rcs0msz/1/

2

die Sie interessieren,

<asp:CheckBox runat="server" ID="ddlHead" onclick="javascript:funCalled(this)" ClientIDMode="Static" /> 

function funCalled(obj) { 
    if (obj.checked) { 
     $('#<%= lblHeadDamage.ClientID %>').text("Ok"); 
    } else { 
     $('#<%= lblHeadDamage.ClientID %>').text("Low"); 
    } 
} 
Verwandte Themen