Javascript 如何在输入标记';s id和更改值onclick()事件

Javascript 如何在输入标记';s id和更改值onclick()事件,javascript,html,Javascript,Html,我是Javascript新手。我想通过使用这个关键字单击复选框input type来更改name属性的值。 代码的主要目的是在单击首选项时将元素的值保存在php中的数组中。例如,如果我首先单击Oranges复选框,则Oranges的name属性值应为“水果[0]”;如果我取消选中复选框,橙子的name属性的值应该是“fruits[]”,并且对所有的橙子都是一样的。当我单击submit时,应该根据索引将值附加到php数组中。 我会感谢你的。 在“values”函数中,我没有看到复选框对象已经定

我是Javascript新手。我想通过使用这个关键字单击复选框input type来更改name属性的值。 代码的主要目的是在单击首选项时将元素的值保存在php中的数组中。例如,如果我首先单击Oranges复选框,则Oranges的name属性值应为“水果[0]”;如果我取消选中复选框,橙子的name属性的值应该是“fruits[]”,并且对所有的橙子都是一样的。当我单击submit时,应该根据索引将值附加到php数组中。 我会感谢你的。


在“values”函数中,我没有看到复选框对象已经定义,这可能是您的问题

尝试编辑inputs onclick属性,使其在参数中显示“this”。然后,不再使用“复选框”。选中“使用”参数[0]。选中”

我想那会有用的,祝你好运

编辑:我不明白为什么你的复选框的ID包含在(这个)中

还有关于第一条if语句的提示:如果删除“==true”部分,代码仍将运行

更换试验=试验+1;和试验=试验-1;使用test++;测试--

祝Javascript好运

试试这个:

</head>
<body>
    <form action="<?php $_PHP_SELF ?>" method="POST">
    Apples:<input onclick="values(this)" id="chkbox0" type="checkbox" name="fruits[]" value="Apples">
    <br><br>
    Oranges:<input onclick="values(this)" id="chkbox1" type="checkbox" name="fruits[]" value="Oranges">
    <br><br>
    Pears:<input onclick="values(this)" id="chkbox2" type="checkbox" name="fruits[]" value='Pears'>
    <br><br>
    <input type='submit' value="submit">
    </form>
    <script>
        var test=0;
        function values()
        { var element = arguments[0];
            if(element.checked)
            {
                if(test==0)
                {
                    element.name='fruits['+test+']';

                }
                else
                {
                    test++;
                    element.name='fruits['+test+']';

                }

            }
            else
            {
                test--;
                element.name='fruits[]';

            }
        }
    </script>

</body>
</html>
<?php
$fruits=$_REQUEST["fruits"];
echo $fruits[1];
?>


当您内联定义事件处理程序时,您必须手动传递
参数(例如
onclick=“values(this)”
)-如果您使用javascript和addEventListener绑定处理程序,您不必担心。谢谢您先生宝贵的回答,我会帮我很多忙。是的,你是对的,几天后我遇到了这个问题,我刚通过addEventListener,它比以前的问题更有用谢谢你的回答
</head>
<body>
    <form action="<?php $_PHP_SELF ?>" method="POST">
    Apples:<input onclick="values(this)" id="chkbox0" type="checkbox" name="fruits[]" value="Apples">
    <br><br>
    Oranges:<input onclick="values(this)" id="chkbox1" type="checkbox" name="fruits[]" value="Oranges">
    <br><br>
    Pears:<input onclick="values(this)" id="chkbox2" type="checkbox" name="fruits[]" value='Pears'>
    <br><br>
    <input type='submit' value="submit">
    </form>
    <script>
        var test=0;
        function values()
        { var element = arguments[0];
            if(element.checked)
            {
                if(test==0)
                {
                    element.name='fruits['+test+']';

                }
                else
                {
                    test++;
                    element.name='fruits['+test+']';

                }

            }
            else
            {
                test--;
                element.name='fruits[]';

            }
        }
    </script>

</body>
</html>
<?php
$fruits=$_REQUEST["fruits"];
echo $fruits[1];
?>