gpt4 book ai didi

javascript - 添加表单元素停止动态文本框工作

转载 作者:行者123 更新时间:2023-11-30 16:09:45 25 4
gpt4 key购买 nike

我正在尝试使用 Bootstrap 为我正在创建的表单制作动态文本框。我有以下有效的代码:

$(function() {
$(document).on('click', '.btn-add', function(e) {
e.preventDefault();

var controlForm = $('.controls form:first'),
currentEntry = $(this).parents('.entry:first'),
newEntry = $(currentEntry.clone()).appendTo(controlForm);

newEntry.find('input').val('');
controlForm.find('.entry:not(:last) .btn-add')
.removeClass('btn-add').addClass('btn-remove')
.removeClass('btn-success').addClass('btn-danger')
.html('<span class="glyphicon glyphicon-minus"></span>');
}).on('click', '.btn-remove', function(e) {
$(this).parents('.entry:first').remove();

e.preventDefault();
return false;
});
});
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="control-group" id="fields">
<label class="control-label" for="field1">Nice Multiple Form Fields</label>
<div class="controls">
<form role="form" autocomplete="off">
<div class="entry input-group col-xs-3">
<input class="form-control" name="fields[]" type="text" placeholder="Type something" />
<span class="input-group-btn">
<button class="btn btn-success btn-add" type="button">
<span class="glyphicon glyphicon-plus"></span>
</button>

</span>

</div>
</form>
<br>
<small>Press <span class="glyphicon glyphicon-plus gs"></span> to add </small>
</div>
</div>

问题是当我出于某种原因在它周围添加一个表单元素时它停止工作,如下所示:

$(function() {
$(document).on('click', '.btn-add', function(e) {
e.preventDefault();

var controlForm = $('.controls form:first'),
currentEntry = $(this).parents('.entry:first'),
newEntry = $(currentEntry.clone()).appendTo(controlForm);

newEntry.find('input').val('');
controlForm.find('.entry:not(:last) .btn-add')
.removeClass('btn-add').addClass('btn-remove')
.removeClass('btn-success').addClass('btn-danger')
.html('<span class="glyphicon glyphicon-minus"></span>');
}).on('click', '.btn-remove', function(e) {
$(this).parents('.entry:first').remove();

e.preventDefault();
return false;
});
});
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<div class="control-group" id="fields">
<label class="control-label" for="field1">Nice Multiple Form Fields</label>
<div class="controls">
<form role="form" autocomplete="off">
<div class="entry input-group col-xs-3">
<input class="form-control" name="fields[]" type="text" placeholder="Type something" />
<span class="input-group-btn">
<button class="btn btn-success btn-add" type="button">
<span class="glyphicon glyphicon-plus"></span>
</button>

</span>

</div>
</form>
<br>
<small>Press <span class="glyphicon glyphicon-plus gs"></span> to add </small>
</div>
</div>
</form>

如有任何想法,我们将不胜感激。

最佳答案

嵌套形式在 html 中是不可能的... nested form is not possible ...

一句话,没有。您可以在一个页面中有多个表单,但它们不应嵌套。4.10.3 表单元素

内容模型:

流式内容,但没有表单元素后代。

<div class="control-group" id="fields">
<label class="control-label" for="field1">Nice Multiple Form Fields</label>
<div class="controls">
<form role="form" autocomplete="off">
<div class="entry input-group col-xs-3">
<input class="form-control" name="fields[]" type="text" placeholder="Type something" />
<span class="input-group-btn">
<button class="btn btn-success btn-add" type="button">
<span class="glyphicon glyphicon-plus"></span>
</button>

</span>

</div>
</form>
<br>
<small>Press <span class="glyphicon glyphicon-plus gs"></span> to add </small>
</div>
</div>


$(function() {
$(document).on('click', '.btn-add', function(e) {
e.preventDefault();

var controlForm = $('.controls form:first'),
currentEntry = $(this).parents('.entry:first'),
newEntry = $(currentEntry.clone()).appendTo(controlForm);

newEntry.find('input').val('');
controlForm.find('.entry:not(:last) .btn-add')
.removeClass('btn-add').addClass('btn-remove')
.removeClass('btn-success').addClass('btn-danger')
.html('<span class="glyphicon glyphicon-minus"></span>');
}).on('click', '.btn-remove', function(e) {
$(this).parents('.entry:first').remove();

e.preventDefault();
return false;
});
});

关于javascript - 添加表单元素停止动态文本框工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36448229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com