我在表单中有一些checked
,如果unchecked
或checked
我设置了每个值。
因此,TRUE
的复选框的值为FALSE
,未选中为TRUE
如果我选中了所有复选框(值为FALSE
)并取消选中其中一个复选框,则另一个复选框也会取消选中,数据库上的值也会变为 <label><input type="checkbox" id="trans_val_identical" value="FALSE">II Transaction Value of Identical Goods</label>
<label><input type="checkbox" id="trans_val_identical" checked="checked" value="FALSE">II Transaction Value of Identical Goods</label>
</div>
<div class="checkbox">
<label><input type="checkbox" id="trans_val_similar" value="FALSE">III Transaction Value of Similar Goods</label>
<label><input type="checkbox" id="trans_val_similar" checked="checked" value="FALSE">III Transaction Value of Similar Goods</label>
</div>
<div class="checkbox">
<label><input type="checkbox" id="deductive_val" value="FALSE">IV Deductive Value</label>
<label><input type="checkbox" id="deductive_val" checked="checked" value="FALSE">IV Deductive Value</label>
</div>
<div class="checkbox">
<label><input type="checkbox" id="computed_val" value="FALSE">V Computed Value</label>
<label><input type="checkbox" id="computed_val" checked="checked" value="FALSE">V Computed Value</label>
</div>
<div class="checkbox">
<label><input type="checkbox" id="fallback_val" value="FALSE">VI Fallback Value</label>
<label><input type="checkbox" id="fallback_val" checked="checked" value="FALSE">VI Fallback Value</label>
。我无法理解下面的行为是我的代码
HTML
$('#trans_val_identical').change(function(){
if($(this).attr('checked')){
$(this).val('TRUE');
}else{
$(this).val('FALSE');
}
});
$('#trans_val_similar').change(function(){
if($(this).attr('checked')){
$(this).val('TRUE');
}else{
$(this).val('FALSE');
}
});
$('#deductive_val').change(function(){
if($(this).attr('checked')){
$(this).val('TRUE');
}else{
$(this).val('FALSE');
}
});
$('#computed_val').change(function(){
if($(this).attr('checked')){
$(this).val('TRUE');
}else{
$(this).val('FALSE');
}
});
$('#fallback_val').change(function(){
if($(this).attr('checked')){
$(this).val('TRUE');
}else{
$(this).val('FALSE');
}
});
JS
{{1}}
答案 0 :(得分:2)
这里有几个问题:
首先,您的复选框元素没有名称,这意味着它们不会通过其值正确传递到服务器。确保它们具有名称,以便您可以在PHP脚本中引用它们并将它们正确保存到数据库中。
其次,您对表单中如何提交复选框的理解有点偏差。复选框的value
属性会在检查后提交,如果未选中则不会提交。因此,您不应将值从TRUE更改为FALSE,反之亦然。
所以,如果你有这样的事情:
<input type="checkbox" name="trans_val_identical" value="1">
然后$_POST['trans_val_identical']
(假设您使用帖子提交表单)将是&#34; 1&#34;如果选中该复选框,则如果取消选中该复选框,则该复选框将不存在。因此,要检查是否在PHP中选中了复选框,您可以使用以下内容:
if ( isset( $_POST['trans_val_identical'] )) {
// The checkbox is checked
} else {
// The checkbox is not checked
}