我是 jquery 的新手,我 100% 确定我犯了一个逻辑错误,但我看不到它。基本上,当用户在字段中键入项目时,我想克隆字段,以便他们可以继续添加更多信息。在我正在处理的示例中,我正在尝试创建兄弟姐妹及其年龄的列表。
这是我的代码:
$(document).ready(function () {
$("input[name='age']").on('keydown', function() {
//is it the last input?
if (this == $("input[name='age']:last", this.form)[0]) {
//insert an empty clone of the current input
//$(this).after($(this).clone(true).val(''));
$('.family').clone().insertAfter(".family");
}
这是html:
<form>
<div class="family">
<input name="age" value=0> <input name="sibling" value="name?">
<hr />
</div>
</form>
如果我使用$(this).after($(this).clone(true).val(''));
,那么它可以工作,但它只克隆一个字段(年龄一)所以我尝试将其替换$('.family').clone().insertAfter(".family");
为克隆 div 类,但它只克隆一次字段。如果我开始输入我的第一个兄弟姐妹信息,则会出现第二个表单,但如果我开始在第二个表单上输入,则之后不会出现任何新内容。
这只是一个猜测,但我认为 if 语句不匹配,因此没有创建克隆(我是新手,所以这个想法可能是错误的)。如果是这种情况,那么我很困惑,因为我正在克隆输入字段的相同名称,所以input[name='age']:last
应该匹配最后一个年龄字段..不确定。
知道我做错了什么吗?