将输入类型复选框关联到输入类型文本

时间:2015-03-30 02:45:29

标签: php jquery html forms input

我遇到问题,我需要将输入类型复选框与输入类型文本关联。

情况如下:

从数据库中提取数据。 PK数据是复选框的值。当checbox选择输入类型文本时,您可以输入特定数字。

现在问题是选择所有类型的复选框输入文本都会被激活。我希望通过选中复选框输入仅启用与复选框相关联的输入。

我的HTML代码(此代码为数据库中的每条记录创建输入复选框和输入文本,我想要的是激活特定复选框,激活输入类型文本):

<form action="send.php" method="POST" id="form-touch">
    <?php foreach ($data as $key): ?>
        <div id="inputsForm">
              <input type="checkbox" class="id-check" name="nuevoid[]" value="<?php echo $key['pr_id'] ?>">
                <input type="newquantity[]" class="myinput" disabled name="newQuantity" value="" placeholder="Enter quantity">
        </div>
    <?php endforeach; ?>
                <input type="submit" value="Send">
</form>

我的jquery代码(通过选中复选框激活或停用文本字段的代码):

$('.id-check').change(function(){
    if ($('.id-check').is(':checked') == false){
         $('.myinput').val('').prop('disabled', true);
   } else {
         $('.myinput').val('1').prop('disabled', false);
   }
});

我如何实现我想要的目标?来自智利的问候。

2 个答案:

答案 0 :(得分:2)

尝试

$('.id-check').change(function() {
  if ($(this).is(':checked') == false) {
    $(this).closest('div').find('.myinput').val('').prop('disabled', true);
  } else {
    $(this).closest('div').find('.myinput').val('1').prop('disabled', false);
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="send.php" method="POST" id="form-touch">

  <div id="inputsForm">
    <input type="checkbox" class="id-check" name="nuevoid[]" value="">
    <input type="newquantity[]" class="myinput" disabled name="newQuantity" value="" placeholder="Enter quantity">
  </div>
  <div id="inputsForm">
    <input type="checkbox" class="id-check" name="nuevoid[]" value="1">
    <input type="newquantity[]" class="myinput" disabled name="newQuantity" value="" placeholder="Enter quantity">
  </div>

  <input type="submit" value="Send">
</form>

答案 1 :(得分:2)

您可以使用.next() jQuery选择器。我在下面修改了你的jQuery更改处理程序。它对我有用,所以试试吧。它也适合你。

$('.id-check').change(function(){
    if ($(this).is(':checked') == false){
        $(this).next().val('').prop('disabled', true);
    } else {
        $(this).next().val('1').prop('disabled', false);
    }
});

Goodluck和快乐的编码! : - )