如何从表单中的复选框返回未更改的值

时间:2014-01-27 16:53:26

标签: javascript jquery forms

如果勾选了复选框,则我的值将返回为是,但如果未选中则不返回值

这是我的HTML

<input id="contactMe" type="checkbox" name="MarketingOptIn" checked value="no">

这是javascript / jquery

<script>
$("#contactMe").click(function(){
if ($("#contactMe").is(':checked')){
    $(this).val("yes");
} else {
    $(this).val("no");
}
});
</script>

如果勾选并提交,我会得到“是”的值,但如果未获取,则提交我获得[$ MarketingOptIn]

1 个答案:

答案 0 :(得分:2)

当您提交一个未选中复选框的表单时,输入集中的值将 - 这是故意的。如果您有单选按钮,则会发生相同的情况。

因此,要么获得MarketingOptIn=yes,要么根本没有获得MarketingOptIn

一个不错的解决方案是确保接收脚本知道它应该期望MarketingOptIn,如果它不是假设MarketingOptIn=no

通常会看到类似的内容:

$MarketingOptIn = isset($_GET["MarketingOptIn"]) ? "yes" : "no";

正确的解决方案,例如模型驱动的方法,几乎​​可以解决这些问题,但却更加复杂。