当复选框被选中时,是否可以将复选框的值从TRUE更改为FALSE,反之亦然?我可以在更改事件上编写一个JQuery并更改值但是想知道HTML中是否还有其他方法?
<input name="bool_flg" id="bNow_flg" type="checkbox" value="true">
答案 0 :(得分:2)
你到底想要做什么?复选框的checked
属性始终对应于输入是否为checked
。
我有一个小提琴here,可以演示这个。
如果您希望复选框的value
属性与其checked
状态保持同步,请参阅this小提琴。
基本上,您希望在复选框中注册一个on change事件,并使其值等于其检查状态。
$('#bNow_flg').change(function() {
$(this).val($(this).is(':checked'));
});
答案 1 :(得分:0)
我不确定你想要什么但是默认情况下,当选中复选框时你得到一个真值,那么如果没有选中checkebox则值为false。
所以你不需要在这种输入上指定属性值。
答案 2 :(得分:0)
复选框是表单的一部分,是否要影响提交该表单时使用的值?在这种情况下,您必须使用两个具有相同名称的输入:
<input name="bool_flg" type="hidden" value="false" />
<input name="bool_flg" id="bNow_flg" type="checkbox" value="true" />
背景是浏览器不会为提交表单时未检查的复选框发送值。如果未选中该复选框,则浏览器将仅发送隐藏输入的false
值。
选中此复选框后,浏览器将发送复选框的true
值,覆盖隐藏输入的false
值。
当您使用Html.CheckBoxFor()
时,Asp.net MVC使用相同的技巧(使用隐藏的输入和具有相同名称的复选框)。