【发布时间】:2016-06-22 13:02:18
【问题描述】:
我需要一个帮助。我需要使用 Javascript/Jquery 动态添加输入字段名称属性。我每次都通过单击+ 按钮创建新字段,并通过单击- 按钮删除必填字段。我在下面解释我的代码。
function createNew(evt){
$('#questionshowp1').append('<div class="form-group"><input name="questions1" id="questions1" class="form-control firstsec" placeholder="Text, Image URL, or LaTeX" value="" type="text"><div class="secondsec"><button type="button" class="btn btn-sm btn-success exp-add" style="line-height:12px;" onclick="createNew(this);"><i class="fa fa-plus" aria-hidden="true"></i></button><button type="button" class="btn btn-sm btn-danger exp-minus" style="line-height:12px;" onclick="deleteNew(this)"><i class="fa fa-minus" aria-hidden="true"></i></button></div></div>');
$(evt).css('display', 'none');
$(evt).siblings("button.btn-danger").css('display', 'block');
}
function deleteNew(evnt){
$(evnt).closest(".form-group").remove();
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
<div class="questionshowp" id="questionshowp1">
<div class="form-group">
<input name="questions0" id="questions0" class="form-control firstsec" placeholder="Text, Image URL, or LaTeX" value="" type="text">
<div class="secondsec">
<button type="button" class="btn btn-sm btn-success exp-add" style="line-height:12px;" onclick="createNew(this);"><i class="fa fa-plus" aria-hidden="true"></i></button>
<button type="button" class="btn btn-sm btn-danger exp-minus" style="line-height:12px;display:none;" onclick="deleteNew(this)"><i class="fa fa-minus" aria-hidden="true"></i></button>
</div>
</div>
</div>
在这里我使用+ 按钮创建新字段,在这里我需要增加名称属性值,例如questions0,questions1,questions2.... this。假设用户删除任何字段,那么这个给定的顺序也将保留所有字段作为名称属性值。请帮帮我。
【问题讨论】:
-
在js中制作全局变量。像
questionnumber=1;这样的东西,然后将其附加到字符串'...question' + questionnumber + '" id=...' -
让我明白.. 如果用户添加2个问题,结果将
question0, question。然后他删除了第二个并添加了一个。结果是否假设为question0, question2? -
假设用户添加了
3问题question0,question1,question2..并删除了中间的问题(i.e-question1),那么删除后它会再次question0,question1。 -
如果名字并不重要,你只需要传递它们,你可以使用
name="questions[]"。但这不适用于 id。 -
我为什么要这样做,因为当我提交表单时,我可以轻松地将它们提取到数组中。
标签: javascript jquery html