in textbox2
angezeigt wenn Sie C# verwenden möchten, müssen Sie Änderungen an Postback und aktualisieren Sie die Inhalte von TextBox2
:
ASP.NET/C# (serverseitig)
<asp:CheckBox ID="CheckBox1" runat="server" value="5" AutoPostBack="true" OnCheckedChanged="CheckBox1_CheckedChanged"/>
<asp:CheckBox ID="CheckBox2" runat="server" value="15" AutoPostBack="true" OnCheckedChanged="CheckBox1_CheckedChanged"/>
<asp:CheckBox ID="CheckBox3" runat="server" value="25" AutoPostBack="true" OnCheckedChanged="CheckBox1_CheckedChanged"/>
<asp:CheckBox ID="CheckBox4" runat="server" value="35" AutoPostBack="true" OnCheckedChanged="CheckBox1_CheckedChanged"/>
-Code hinter:
protected void CheckBox1_CheckedChanged (object sender, EventArgs e)
{
int sum = Convert.ToInt32(this.TextBox1.Text);
if (this.CheckBox1.Checked) sum += Convert.ToInt32(this.CheckBox1.Attributes["value"]);
if (this.CheckBox2.Checked) sum += Convert.ToInt32(this.CheckBox2.Attributes["value"]);
if (this.CheckBox3.Checked) sum += Convert.ToInt32(this.CheckBox3.Attributes["value"]);
if (this.CheckBox4.Checked) sum += Convert.ToInt32(this.CheckBox4.Attributes["value"]);
this.TextBox2.Text = sum.ToString();
}
Aber ich würde jQuery für diese Aufgabe bevorzugen:
Edit: da Sie fragten, die freundlich für einige Code jQuery, hier ist es:
jQuery (clientseitig)
Bemerkung: Das Attribut "value" wird nicht ingeschriebens in der HTML-Ausgabe. Sie könnten stattdessen data-value
verwenden, dann wird die Eingabe in ein span
mit dem angegebenen data-value
-Attribut eingebettet.
<script>
function clientclick() {
var tb = $("#<%=TextBox1.ClientID %>");
var sum = parseInt(tb.val());
var cb = $("#<%=CheckBox1.ClientID %>");
if (cb.is(":checked")) sum += parseInt(cb.parent("*[data-value]").data("value"));
cb = $("#<%=CheckBox2.ClientID %>");
if (cb.is(":checked")) sum += parseInt(cb.parent("*[data-value]").data("value"));
cb = $("#<%=CheckBox3.ClientID %>");
if (cb.is(":checked")) sum += parseInt(cb.parent("*[data-value]").data("value"));
cb = $("#<%=CheckBox4.ClientID %>");
if (cb.is(":checked")) sum += parseInt(cb.parent("*[data-value]").data("value"));
$("#<%=TextBox2.ClientID %>").val(sum);
}
</script>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:CheckBox ID="CheckBox1" runat="server" data-value="5" onclick="clientclick()"/>
<asp:CheckBox ID="CheckBox2" runat="server" data-value="15" onclick="clientclick()"/>
<asp:CheckBox ID="CheckBox3" runat="server" data-value="25" onclick="clientclick()"/>
<asp:CheckBox ID="CheckBox4" runat="server" data-value="35" onclick="clientclick()"/>
<asp:TextBox ID="TextBox2" runat="server" ></asp:TextBox>
Dies ist quick'n'dirty aber ich halte es an Ihnen, diesen Ansatz mit den anderen Antworten zu kombinieren mit $.each
Und was haben Sie versucht? ;) – Tushar
Nur javascript oder du lädst auch jquery? –
Ich habe versucht, mit Javascript, aber es gibt mir nur die Summe der Checkbox – Bunny