选中复选框时从表单外部调用值

时间:2013-08-07 22:17:35

标签: php javascript forms

我几乎得到了这个......希望我可以锁定它。

第一部分是表格外的复选框:

<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时,我得到的只是真实而非“测试”,就像我试图打电话......有人知道为什么吗?

2 个答案:

答案 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;之类的操作来获取无错误的值。