【发布时间】:2016-09-01 13:32:39
【问题描述】:
我有一个带有复选框的表单,我想在提交表单后保持选中状态,当它返回到同一个视图并出现错误时。我听说 value 属性可以帮助我选中复选框,所以我试图将其设置为 true/false。无论如何,即使我单击它,输入值也会保持“假”。究竟会发生什么? 我认为单击复选框后该值变为真/假
<input type="checkbox" name="acceptRules" class="inline checkbox" id="checkbox1" value="false">
<script>
$("#checkbox1").is(':checked', function(){
$("#checkbox1").attr('value', 'true');
});
</script>
【问题讨论】:
-
我对这个问题感到困惑。如果选中该复选框,您似乎想要更改该值。但传统上,复选框的值不会改变。它们的状态决定了它们是否被传递到后端。
-
值得指出的是,当切换复选框时,元素的 HTML 实际上并没有改变。因此,执行
.getAttribute('checked')不会返回任何内容,即使您将 'checked' 属性应用于 HTML 以设置其初始状态。修复方法是访问输入的 JS 属性,也称为checked。即在用于复选框更改事件的普通 JS 处理程序中,这什么都不做:byId('tgt').value = this.getAttribute('checked');,而这会将文本设置为真或假:byId('tgt').value = this.checked; -
您是说在第 1 页上您可以选择选择一个复选框然后提交,而在第二页上您希望选中状态与第一个表单上的状态保持一致?
-
如果复选框没有被点击,我只需要返回一个错误信息。该死的
标签: javascript jquery checkbox