如果选中复选框数组中的复选框,如何提交值1,如果未选中则提交0?我试过这个,但没有运气。我正在尝试在提交表单时在php数组中获取此数组。请帮忙!
<input id = 'testName0' type = 'checkbox' name = 'check[0]' value = '1' checked>
<input id='testNameHidden0' type='hidden' value='0' name='check[0]'>
<input id = 'testName1' type = 'checkbox' name='check[1]' value = '1' unchekced>
<input id='testNameHidden1' type='hidden' value='0' name='check[1]'>
<input type = 'submit' value = 'Save Changes'>
>
<script>
if(document.getElementById('testName0').checked){
document.getElementById('testNameHidden0').disabled = true;
}
</script>
<script>
if(document.getElementById('testName1').checked){
document.getElementById('testNameHidden1').disabled = true;
}
</script>
答案 0 :(得分:41)
最简单的一个,没有javascript ,只需在复选框之前输入一个隐藏的输入:
<input type="hidden" name="check[0]" value="0" />
<input type="checkbox" name="check[0]" value="1" />
输入需要具有相同的名称。如果选中该复选框,则将提交值1,否则将隐藏输入值0。
您的案例 javascript解决方案,无需隐藏的输入:
<script type="text/javascript">
// when page is ready
$(document).ready(function() {
// on form submit
$("#form").on('submit', function() {
// to each unchecked checkbox
$(this + 'input[type=checkbox]:not(:checked)').each(function () {
// set value 0 and check it
$(this).attr('checked', true).val(0);
});
})
})
</script>
<form method="post" id="form">
<input type="checkbox" name="check[0]" value="1" />
<input type="checkbox" name="check[1]" value="1" />
<input type="submit" value="Save Changes" />
</form>
PHP解决方案,无需隐藏输入:
<?php
// if data is posted, set value to 1, else to 0
$check_0 = isset($_POST['check'][0]) ? 1 : 0;
$check_1 = isset($_POST['check'][1]) ? 1 : 0;
?>
<form method="post">
<input type="checkbox" name="check[0]" value="1" />
<input type="checkbox" name="check[1]" value="1" />
<input type="submit" value="Save Changes" />
</form>
答案 1 :(得分:0)
好吧,我有一个简单得多的代码,对我来说效果很好:
<input type="checkbox" value="true" id="checkBox">
然后是JQuery代码:
var checkBoxValue = $('#checkBox').is(':checked')?$('#checkBox').val():false
我使用了三元运算符来设置检查和未检查条件下的值。
答案 2 :(得分:0)
更好的解决方案为我解决了这个问题。
问题:隐藏和选中状态均发送到我的服务器。
解决方案:
if len(key) == 1 {
value = false
} else {
value = true
}
这样,如果len(key)为1,我知道只发送隐藏字段。任何其他情况都意味着该框已选中。简单容易。