Javascript 是否选中复选框未传递实际值?

Javascript 是否选中复选框未传递实际值?,javascript,jquery,html,checkbox,Javascript,Jquery,Html,Checkbox,我的代码根据无线电字段检查2x复选框的值是否等于真/假。我在网页上看到了复选框 但是,一旦它们被传递到HTML POST表单上,它们就没有值,并且总是等于false 如果我给复选框一个值“TRUE”,那么它们当然只有该值 我错过了什么 <script> $(function() { var MAIN= $("input[type='radio']"); var marketingPhone = $("input[type='checkbox']

我的代码根据无线电字段检查2x复选框的值是否等于真/假。我在网页上看到了复选框

但是,一旦它们被传递到HTML POST表单上,它们就没有值,并且总是等于false

如果我给复选框一个值“TRUE”,那么它们当然只有该值

我错过了什么

    <script>      
      $(function() {
  var MAIN= $("input[type='radio']");
  var marketingPhone = $("input[type='checkbox'][name='marketingPhone']");
  var marketingRobo = $("input[type='checkbox'][name='marketingRobo']");


    MAIN.on('change', function()
        {
        if ($(this).val() == "TRUE")  {
          marketingPhone.prop('checked',true);
          marketingRobo.prop('checked',true);
        } else {
          marketingPhone.prop('checked',false);
          marketingRobo.prop('checked',false); 
        }

    });
});
  </script>

$(函数(){
var MAIN=$(“输入[type='radio']”);
var marketingPhone=$(“输入[type='checkbox'][name='marketingPhone']);
var marketingRobo=$(“输入[type='checkbox'][name='marketingRobo']);
MAIN.on('change',function()
{
if($(this.val()=“TRUE”){
marketingPhone.prop('checked',true);
marketingRobo.prop(“选中”,为真);
}否则{
marketingPhone.prop('checked',false);
marketingRobo.prop(“已检查”,错误);
}
});
});
字段如下所示:

        <input type="checkbox" name="marketingPhone" value=""/>
        <input type="checkbox" name="marketingRobo" value=""/> 

复选框,如果未选中,则不会与表单一起过账


因此,如果您在表单中发布带有复选框的表单,即使它们有一些值但未选中,您也无法在$\u post或$\u get数组中获取复选框的值。

您需要在HTML中指定一个
值。如果选中复选框,则将发布该值。这些值可以是任何值,并且绝对不同于用于
prop()
-调用的true/false(这些值仅表示“设置或清除复选标记”)

例如:

<input type="checkbox" name="marketingPhone" value="yes"/>
<input type="checkbox" name="marketingRobo" value="absolutely"/> 
如果未选中全部,则相应的
name=value
将从发布的数据中忽略


如果您真的想始终为每个复选框发布一个值(例如“真”或“假”),那么唯一的方法是添加您自己控制的隐藏字段(每个复选框一个),使用脚本将隐藏字段的值设置为
“真”
“假”
。您最好不要设置复选框
,以防止接收端出现混淆


还要注意,表单字段总是发布字符串,因此可以将它们视为文本字符串,或者在接收端将它们解析为布尔值。

Hi。谢谢你的意见。但是,如果我看到网页上的复选框被选中,那么我还需要对它们做什么才能获得值?脚本根据单选按钮检查它们,但它们似乎没有显示值。抱歉,我在这里感到困惑,您没有在复选框中输入任何值。所以即使他们会被检查,你也不能得到他们的价值。道歉。我以为“checked”是值。如果可能的话,我如何用我的方法将值传递给复选框?您应该将任何想要的值放入复选框中。只有在检查后,才会将其与表格一起发布。如果没有,则您甚至无法获取$\u POST或$\u get数组键中复选框的名称。因此,如果未选中
marketingPhone
,而您选中
echo$\u POST['marketingPhone']
,它将抛出未定义的索引。希望您现在明白了。简而言之,您为复选框的
value
属性赋予值,如果您选中它们,您将在php代码中得到它们,否则不会。如果您在复选框中输入一些值,那么您将得到它到后端。嗨,Peter,谢谢您的输入。是否可以将“真”或“假”作为对应于道具设置值的复选框值?问题是,如果我将值作为true添加到复选框级别,那么无论如何设置道具,都只会发布true。
marketingPhone=yes&marketingRobo=absolutely