我几乎得到了这个......希望我可以锁定它。
第一部分是表格外的复选框:
<div class='span5' style='margin-left:0px !important;'>
<label for='model0'>
<input type="checkbox" name="model0" id="model0" value="test" style='margin-top:-5px !important;'> test</label>
</div> .
这是我的脚本,用于将form0的值(如果选中)发送到表单区域中的send_mail.php。
$("#final_form").submit(function () {
$("#model0_is_checked").val($("#model0").is(':checked'));
return test;
});
这是表格区域:
<form method="post" class="form-horizontal" id="final_form" action="send_mail.php">
<input type="hidden" id="model0_is_checked" name="model0_is_checked" value="test" /> MORE FORM STUFF AND SUBMIT BUTTON </form>
当我打电话给model0_is_checked时,我得到的只是真实而非“测试”,就像我试图打电话......有人知道为什么吗?
答案 0 :(得分:1)
你可以这样做(根据你的代码):http://jsfiddle.net/SdMAt/ 我已经重写了javascript部分。现在隐藏的输入(更改为文本类型以查看结果)在每次单击此外部复选框时都会更改。
$("#model0").on('click', function () {
if ($(this).is(':checked')) {
$('#model0_is_checked').attr('value','true');
} else {
$('#model0_is_checked').attr('value','false');
}
});
答案 1 :(得分:0)
.is(':checked')
返回true或false。它不返回值。你可以这样做:
//if checked
if($("#model0").is(':checked')){
//set the value
$("#model0_is_checked").val($("#model0").val());
//not checked
} else {
//set to some other default value
$("#model0_is_checked").val("not checked");
}
但是,如果您只是在表单中包含复选框,则会在提交时获得复选框的值,如果未选中则不会显示任何值。在提交时,在php中,如果选中则$_POST['model0']
等于test
,如果未选中则不会设置$_POST['model0']
。您可以执行$model0 = isset($_POST['model0'])?$_POST['model0']:null;
之类的操作来获取无错误的值。