javascript - 将复选框与另一个输入相关联

标签 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['additional_id']}'/>
        {$additional['additional_name']} - &#36;{$additional['additional_price']}
        <input type='number' name='additional_quantity' value='1' min='1' max='5'/>
        <br/>";
}
echo "</form>";

我需要的是,当任何名称为 additional_id 的复选框未被选中时,其前面名称为 additional_quantity 且与其数量相关的输入被禁用,反之亦然.但是我不知道该怎么做,更因为我需要使用foreach。我可以用 jQuery 做到这一点吗?

最佳答案

这会做你需要的:

  • 请注意,我为复选框指定了类 enable
  • 我还在实际的 html 输入中添加了 disabled 属性,您需要将其添加到您的 php 代码中
  • 我还为每个输入赋予了唯一的名称如果您允许多个字段并将提交表单,则它们都需要唯一的名称

$('.enable').change(function(){
     var set =  $(this).is(':checked') ? false : true;      // ternary operator to test if the changed checkbox is now checked
     $(this).nextAll('input').first().attr('disabled',set); // find the next input and set it's disabled property according to the previous check  
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form class='additionals'>
  <input class='additional-checkbox enable' type='checkbox' name='additional_id1' value='somevalue' />somevalue
  <input type='number' name='additional_quantity1' value='1' min='1' max='5' disabled/>
  <br/>
  <input class='additional-checkbox enable' type='checkbox' name='additional_id2' value='somevalue' />somevalue
  <input type='number' name='additional_quantity2' value='1' min='1' max='5' disabled/>
  <br/>
  <input class='additional-checkbox enable' type='checkbox' name='additional_id3' value='somevalue' />somevalue
  <input type='number' name='additional_quantity3' value='1' min='1' max='5' disabled/>
  <br/>
  <input class='additional-checkbox enable' type='checkbox' name='additional_id4' value='somevalue' />somevalue
  <input type='number' name='additional_quantity4' value='1' min='1' max='5' disabled/>
  <br/>
  <input class='additional-checkbox enable' type='checkbox' name='additional_id5' value='somevalue' />somevalue
  <input type='number' name='additional_quantity5' value='1' min='1' max='5' disabled/>
  <br/>
</form>

关于javascript - 将复选框与另一个输入相关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29596147/

相关文章:

php - 使用随机方式制作虚构的 "people",获得大量克隆(PHP、Mysql)

javascript - jQuery 追加未按预期工作

javascript - 设置 json 调用的间隔以重新加载新图像

javascript - 三元运算符不起作用,我可以将(这个或那个)作为表达式吗?

javascript - 点击放大 Tumblr 页面上的图片

javascript - 检查 JavaScript 空值

javascript - 有没有办法通过类型文本获取输入的插入符号位置?

javascript - Yii2 - 将 ID 传递给 GridView 中的另一个属性

php - 异步 HTTP 调用后关闭连接

jquery - 如何制作一个反射(reflect)逐步表单进展的 jquery/css 进度条?