javascript - 根据文本框的输入显示/隐藏 div
问题描述
我有一个页面,其中有一个文本框,询问用户他们想要添加多少个类别,如下所示:
<div class="col-12-xxxl col-lg-12 col-12 form-group">
<label>How many SubCategories? *</label>
<input type="number" placeholder="#" class="form-control" id="SelName">
</div>
使用 jQuery 或 JavaScript,我想根据用户的输入显示/隐藏这些 div 元素;如果“1”只显示 div 1,如果“2”同时显示 div 1 和 2,如果“3”同时显示 1,2,3,依此类推。
<div class="col-12-xxxl col-lg-12 col-12 form-group" id="image1">
<label>SubCategory Name 1:*</label>
<input type="number" placeholder="#" class="form-control">
</div>
<div class="col-12-xxxl col-lg-12 col-12 form-group" id="image2">
<label>SubCategory Name 2:*</label>
<input type="number" placeholder="#" class="form-control">
</div>
<div class="col-12-xxxl col-lg-12 col-12 form-group" id="image3">
<label>SubCategory Name 3:*</label>
<input type="number" placeholder="#" class="form-control">
</div>
解决方案
如果你用显示/隐藏来做,你只有有限的数字。您可以改为创建一个循环并根据用户需要创建尽可能多的输入。看看我下面的例子:
$(".form-control").on("change", function(){
var inputVal = $(".form-control").val();
$(".sub-cats").html("");
for (i = 1; i <= inputVal; i++){
$(".sub-cats").append('<div class="col-12-xxxl col-lg-12 col-12 form-group" id="image' + i +'"><label>SubCategory Name '+i+':*</label><input type="number" placeholder="#" class="form-control"></div>');
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="col-12-xxxl col-lg-12 col-12 form-group">
<label>How many SubCategories? *</label>
<input type="number" placeholder="#" class="form-control" id="SelName">
</div>
<div class="sub-cats">
</div>
推荐阅读
- python - logger.setLevel 没有效果
- c - 优先队列和堆(这对我来说很难......)
- bash - 将 stat 命令输出与 bash 中的字符串进行比较
- azure-devops - 如何使用 REST API 更新任务组
- xamarin - 使用 SKCanvasView 渲染图块网格
- django - django.core.exceptions.AppRegistryNotReady:加载 wsgi.py 时尚未加载应用程序
- docker - docker:已安装卷的权限错误
- c# - 在漫游时随机移动 Picturebox
- java - Python:使用 JayDeBeApi 的 JDBC 连接错误
- javascript - 正则表达式用 JavaScript 中的条件拆分逗号上的字符串