Javascript 将复选框与其他输入关联

Javascript 将复选框与其他输入关联,javascript,php,jquery,Javascript,Php,Jquery,我想做点什么。我有以下代码片段: echo "<form class='additionals'>"; foreach($connection->query($sql2) as $additional) { echo "<input class='additional-checkbox' type='checkbox' name='additional_id' value='{$additional['addi

我想做点什么。我有以下代码片段:

echo "<form class='additionals'>";               
foreach($connection->query($sql2) as $additional)
{
    echo "<input class='additional-checkbox' type='checkbox' name='additional_id'
            value='{$additional['additional_id']}'/>
        {$additional['additional_name']} - &#36;{$additional['additional_price']}
        <input type='number' name='additional_quantity' value='1' min='1' max='5'/>
        <br/>";
}
echo "</form>";
echo”“;
foreach($connection->query($sql2)作为$additional)
{
回声“
{$additional['additional_name']}-&36;{$additional['additional_price']}

“; } 回声“;

我需要的是,如果未选中任何名为
additional\u id
的复选框,则其前面名为
additional\u quantity
且与其数量相关的输入将被禁用,反之亦然。但我不知道如何做到这一点,因为我需要使用
foreach
。我可以用jQuery执行此操作吗?

这将满足您的需要:

  • 注意,我给了复选框class
    enable
  • 我还将
    disabled
    属性添加到实际的html输入中,您需要将其添加到php代码中
  • 我还为每个输入提供了一个唯一的
    名称
    ,如果您允许多个字段并且要提交表单,那么它们都需要唯一的名称
$('.enable').change(函数(){
var set=$(this).is(':checked')?false:true;//三元运算符,用于测试是否现在选中更改的复选框
$(this).nextAll('input').first().attr('disabled',set);//查找下一个输入并根据前面的检查设置其disabled属性
});

一些价值

一些价值
一些价值
一些价值
一些价值

您的复选框是否总是以未选中状态开始?@bleeted0d是的。我想当页面加载时,我需要一个禁用数量输入的代码。谢谢你的回答!我想我不需要为复选框使用不同的名称,因为我使用的是
.serializeform
。我需要禁用未选中复选框的数量输入,因为在序列化表单时,还包括未选中复选框的数量输入。我在代码中发现的唯一问题是,仅当我单击时,数量输入才被禁用。当页面加载时,它们也需要被禁用。对不起,我应该声明我还将属性
disabled
添加到输入中,这样它们就开始禁用,并且只有在您单击前面的复选框时才启用。我看到了它。奇怪的是,在我的代码中,它们是在页面加载时启用的。可能是因为我需要为每个元素使用一个唯一的名称?您是否在php代码中设置了
disabled
,以响应元素,如
echo“…”
?现在已选中此项。工作得很有魅力!我只想谢谢你,我整天都在试着这么做!一个伟大的拥抱!