javascript - 仅通过复选框选中时如何显示文本框

标签 javascript jquery

我制作了一个表格,在项目名称旁边显示我的数据库项目,我还在表格中显示复选框以选择项目,因此项目由 php 动态呈现。因此,复选框也会根据项目数量重复,但是,现在我想使用表中的复选框显示仅选定项目的另一个输入字段。我得到了结果,但只有一半,因为如果复选框选择了一个项目,所有剩余的项目输入字段都会显示,而不是只显示选定的项目。因为我正在使用 jquery 更改 .show() 和 .hide() 方法,但我如何显示输入仅选定项目的字段.... 下面是代码

html table code
----------
<table class="table table-bordered table-striped table-hover js-basic-example dataTable">
                                    <thead>
                                        <tr>
                                            <th>S.No</th>
                                            <th>Item</th>
                                            <th>Category</th>
                                            <th>Select</th>
                                        </tr>
                                    </thead>
                                    <tbody>

                                        <tr>
                                            <td>1</td>
                                            <td>coffee</td>
                                            <td>Drinks</td>
                                            <td>
                                            <div class="row">
                                            <div class="col-sm-2">
                                            <input type="checkbox" name="itemid" value="1" id='item'  class="check">
                                            </div>
                                            <div class="col-sm-10">
                                            <div class="form-group cost-box">
                                                <div class="form-line">
                                                    <input type="number" name="qty" class="form-control" placeholder="Enter Quantity" />
                                                </div>
                                             </div>
                                            </div>
                                            </div>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td>1</td>
                                            <td>Milk shake</td>
                                            <td>Drinks</td>
                                            <td>
                                            <div class="row">
                                            <div class="col-sm-2">
                                            <input type="checkbox" name="itemid" value="2" id='item'  class="check">
                                            </div>
                                            <div class="col-sm-10">
                                            <div class="form-group cost-box">
                                                <div class="form-line">
                                                    <input type="number" name="qty" class="form-control" placeholder="Enter Quantity" />
                                                </div>
                                             </div>
                                            </div>
                                            </div>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td>1</td>
                                            <td>Banana</td>
                                            <td>Fruit</td>
                                            <td>
                                            <div class="row">
                                            <div class="col-sm-2">
                                            <input type="checkbox" name="itemid" value="3" id='item'  class="check">
                                            </div>
                                            <div class="col-sm-10">
                                            <div class="form-group cost-box">
                                                <div class="form-line">
                                                    <input type="number" name="qty" class="form-control" placeholder="Enter Quantity" />
                                                </div>
                                             </div>
                                            </div>
                                            </div>
                                            </td>
                                        </tr>
                                    </tbody>
                                </table>


----------
jquery code

$(".cost-box").hide();
$("#item").click(function() {
    if($(this).is(":checked")) {
        $(".cost-box").show();
    } else {
        $(".cost-box").hide();
    }
});

最佳答案

你应该使用class而不是id,因为你使用了不止一次,然后通过parent找到了.cost-box () sibling ()

$(".cost-box").hide();
$(".item").click(function() {
  if ($(this).is(":checked")) {
    $(this).parent().siblings().find(".cost-box").show();
  } else {
    $(this).parent().siblings().find(".cost-box").hide();
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table class="table table-bordered table-striped table-hover js-basic-example dataTable">
  <thead>
    <tr>
      <th>S.No</th>
      <th>Item</th>
      <th>Category</th>
      <th>Select</th>
    </tr>
  </thead>
  <tbody>

    <tr>
      <td>1</td>
      <td>coffee</td>
      <td>Drinks</td>
      <td>
        <div class="row">
          <div class="col-sm-2">
            <input type="checkbox" name="itemid" value="1" class="check item">
          </div>
          <div class="col-sm-10">
            <div class="form-group cost-box">
              <div class="form-line">
                <input type="number" name="qty" class="form-control" placeholder="Enter Quantity" />
              </div>
            </div>
          </div>
        </div>
      </td>
    </tr>
    <tr>
      <td>1</td>
      <td>Milk shake</td>
      <td>Drinks</td>
      <td>
        <div class="row">
          <div class="col-sm-2">
            <input type="checkbox" name="itemid" value="1" class="check item">
          </div>
          <div class="col-sm-10">
            <div class="form-group cost-box">
              <div class="form-line">
                <input type="number" name="qty" class="form-control" placeholder="Enter Quantity" />
              </div>
            </div>
          </div>
        </div>
      </td>
    </tr>
    <tr>
      <td>1</td>
      <td>Banana</td>
      <td>Fruit</td>
      <td>
        <div class="row">
          <div class="col-sm-2">
            <input type="checkbox" name="itemid" value="1" class="check item">
          </div>
          <div class="col-sm-10">
            <div class="form-group cost-box">
              <div class="form-line">
                <input type="number" name="qty" class="form-control" placeholder="Enter Quantity" />
              </div>
            </div>
          </div>
        </div>
      </td>
    </tr>
  </tbody>
</table>

关于javascript - 仅通过复选框选中时如何显示文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49219368/

相关文章:

javascript - ajax从mysql加载数据

javascript - 如何阻止我的函数修改我传入的值?

javascript - 如何缩放 webview 使其文本内容不会换行?

javascript - JQuery:如何使用 HTML ascii 箭头作为切换指示器?

javascript - 我需要帮助巩固我的职能

javascript - Dropzone.js 无法从 HTML 编辑器 CKEDITOR 获取值

javascript - jQuery:将逗号分隔值的字符串转换为特定的 JSON 格式

javascript - 为什么当我尝试通过添加类来使用 jQuery 隐藏我的 CSS 三 Angular 形时它不起作用?

javascript - 如何监控扩展/插件请求?

jQuery fadeIn 函数不起作用