Bootstrap:前端动态添加输入框组

1、编写输入框,给整体的输入框组取一个id;另添加一个点击按钮,当点击“添加字段”的按钮后,动态的添加一个输入框组并紧跟其后一个删除按钮。

<form class="form-horizontal" role="form">
	<div class="form-group">
	<label for="create-proName" class="col-sm-2 control-label">项目名称 <span style="font-size: 15px; color: red;">*</span>
   </label>
	<div class="col-sm-10" style="width: 300px;">
		<select class="form-control" id="create-proName">
			<option>机器人</option>
			<option>遥控器</option>
			<option>穿梭车</option>
		</select>
	</div>
    <label for="create-startTime" class="col-sm-2 control-label">开始时间 <span style="font-size: 15px; color: red;">*</span>
    </label>
     <div class="col-sm-10" style="width: 300px;">
		<input type="text" class="form-control" id="create-startTime" placeholder="2024-04">
      </div>
	</div>

	<!-- 此处将添加动态字段 -->
	<div class="form-group" id="dynamicFields"></div>
	 <div class="form-group">
	      <div class="col-sm-offset-2 col-sm-10">
	      <button type="button" class="btn btn-default" onclick="addDynamicFields()">添加字段 </button>
	     </div>
	</div>

    <div class="form-group">
	<label for="create-progressDescription" class="col-sm-2 control-label">进度说明 <span style="font-size: 15px; color: red;">*</span></label>
	<div class="col-sm-10" style="width: 40%;">
	<textarea class="form-control" rows="3" id="create-progressDescription"></textarea>
	</div>
	</div>
</form>

2、JS部分:动态添加输入框组,需要有一个自增标识以及删除按钮;

	// 创建输入框组
	function addDynamicFields() {
		// 计算动态字段的下一个索引
		var index = document.querySelectorAll('.dynamic-fields').length + 1;
		// 动态字段的HTML模板
		var template = `
        <div id="dynamicFields${index}" style="margin-top: 20px;">
            <div style="display: flex; align-items: center;">
                <label for="create-pro${index}" class="col-sm-2 control-label">科目${index} <span style="font-size: 15px; color: red;">*</span></label>
                <div class="col-sm-10" style="width: 300px;">
                    <select class="form-control" id="create-subject${index}">
                        <option>人工费</option>
                        <option>差旅费</option>
                    </select>
                </div>
                <label for="create-monthlyBudget${index}" class="col-sm-2 control-label">月预算${index} <span style="font-size: 15px; color: red;">*</span></label>
                <div class="col-sm-10" style="width: 300px;">
                    <input type="text" class="form-control" id="create-monthlyBudget${index}">
                </div>
            </div>

            <div style="margin-top: 25px;">
                <label for="create-financialAccounts${index}" class="col-sm-2 control-label">月决算${index} <span style="font-size: 15px; color: red;">*</span></label>
                <div class="col-sm-10" style="width: 300px;">
                    <input type="text" class="form-control" id="create-financialAccounts${index}">
                </div>
                <label for="create-financialSettlement${index}" class="col-sm-2 control-label">月财务决算${index} <span style="font-size: 15px; color: red;">*</span></label>
                <div class="col-sm-10" style="width: 300px;">
                    <input type="text" class="form-control" id="create-financialSettlement${index}">
                </div>
            </div>
            <button type="button" class="btn btn-danger" onclick="removeDynamicFields(${index})">删除</button>
        </div>
    `;
		// 创建一个新的div来保存动态字段
		var dynamicFieldsContainer = document.getElementById('dynamicFields');
		var div = document.createElement('div');
		div.className = 'dynamic-fields';
		div.innerHTML = template;
		// 将新的动态字段附加到容器
		dynamicFieldsContainer.appendChild(div);
	}

最后的效果:

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值