【发布时间】:2016-11-08 19:02:51
【问题描述】:
我需要一些帮助。我正在使用 + 按钮创建多个 texareas 并使用 - 按钮删除,但我遇到了一些问题。
这是我的代码:
<div class="col-md-3">
<div class="form-group">
<label for="ques">No of questions</label>
<input name="no_of_question" id="ques" class="form-control" placeholder="no of question" value="" type="text">
<div id="err_msg_name" style="font-size:12px; color:#FF0000; text-align: center;"></div>
</div>
</div>
<div class="row">
<div class="col-md-8">
<div class="form-group">
<label>Questions</label>
<input type="button" style="line-height:13px; margin-right:2px;" class="btn btn-success btn-sm" name="plus" id="plus" value="+" onClick="addQuestionField();">
<input type="button" style="line-height:13px; margin-right:2px;" class="btn btn-danger btn-sm" name="minus" id="minus" value="-" onClick="deleteQuestionField();">
</div>
</div>
</div>
<div id="container">
<div class="col-md-4">
<div class="form-group">
<textarea class="form-control" name="questions0" id="questions0" placeholder="Questions" style="background:#FFFFFF;" rows="2"></textarea>
</div>
</div>
</div>
<script>
function addQuestionField() {
var get = $("#ques").val();
console.log('ques', get);
for (var i = 1; i < get; i++) {
$('#container').append('<div class="col-md-4 dyn"><div class="form-group"><textarea class="form-control" name="questions' + i + '" id="questions' + i + '" placeholder="Questions" style="background:#FFFFFF;" rows="2"></textarea></div></div>')
}
}
function deleteQuestionField() {
var textareas = $('#container .dyn');
if (textareas.length !== 0) {
textareas.last().remove();
$('#ques').val(textareas.length - 1);
}
}
</script>
基本上我需要做的是根据在第一个文本框中输入的数字将具有唯一 ID 并按此 ID 排序的新文本区域添加到页面。一个默认文本区域应始终在页面中。
例如,如果我在文本框中输入3,则应添加2个文本区域,如果我输入5-应添加4个文本区域等。
但是上面的代码不能正常工作:例如我在第一个文本框中输入2并点击+按钮-正在创建1个文本区域并添加到页面(什么是好的),同样第二次的事情,但第三次它不再工作了,正在创建一个额外的文本框。
(例如:我输入了3 数字,并且正在添加3个新文本区域+默认的一个= 4,但我只需要在文本框中输入的3-)
我的完整 plunker 代码 here。
【问题讨论】:
-
在您的插件中,如果您输入 3,则仅附加 3 个文本区域。如果你输入 2 ,再输入 2 ,再输入 3 ,接下来的 3 是追加的。
-
是的,这就是问题所在。问题字段总数应与
no of questions字段值中输入的值相同。 -
在这种情况下,获取值
-1即get = get - 1。 -
我在你的plunker中测试过,如果你做
get = get - 1,那么,如果你输入3,那么包括默认的1,它会增加2个文本区域。 -
在下面添加了答案。
标签: javascript jquery