此处我想在textbox(id=TextBox1)
添加多个复选框的值,并在textbox(id=TextBox2)
中显示,而不使用任何按钮。
例如:如果我选择checkbox1
和checkbox3
,那么总数将为30,并且将添加textbox1
(自动填充的用户无法对其进行编辑),然后将其显示在{ {1}}不使用任何按钮
textbox2
答案 0 :(得分:0)
如果您想使用C#,则需要回发更改并刷新TextBox2
的内容:
<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"/>
代码背后:
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();
}
但我更喜欢jQuery来完成这项任务:
编辑:因为你要求那个来获取一些jQuery代码,所以它是:
备注:属性“value”不会写入html输出中的input
。您可以改为使用data-value
,然后输入将嵌入到具有指定span
属性的data-value
中。
<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>
这很快,但是我依靠你使用$.each
答案 1 :(得分:0)
这个答案是js with html。我希望它也适用于你的asp
\node_modules\@ngtools\json-schema\src\schema-class-factory.js:34
result.push(...indices);
^^^
SyntaxError: Unexpected token ...
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:373:25)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
$(document).ready(function() {
var sum;
$("input:checkbox[name=vehicle]").change(function(){
sum=0;
$("input:checkbox[name=vehicle]:checked").each(function(){
sum=sum+parseInt($(this).val())
});
var txtValue=parseInt($('#txt1').val());
$('#txt2').val(txtValue+sum)
});
});