Jquery自动追加新输入,防止上一个
我正在尝试构建一个发票表单,当最后创建的输入收到焦点时,自动创建下一个输入字段,例如,将标签插入 我有我想要的基本功能,但有一个问题。我只想在最后一个输入接收焦点时追加一个新字段,但当前如果之前的任何一个输入接收焦点,它也会追加一个新字段 我的想法是在最后一个字段中添加一个“新”类,然后在追加下一个输入时将其删除,但因为我在#invoice上使用的委托函数没有达到预期效果Jquery自动追加新输入,防止上一个,jquery,append,Jquery,Append,我正在尝试构建一个发票表单,当最后创建的输入收到焦点时,自动创建下一个输入字段,例如,将标签插入 我有我想要的基本功能,但有一个问题。我只想在最后一个输入接收焦点时追加一个新字段,但当前如果之前的任何一个输入接收焦点,它也会追加一个新字段 我的想法是在最后一个字段中添加一个“新”类,然后在追加下一个输入时将其删除,但因为我在#invoice上使用的委托函数没有达到预期效果 $(函数(){ var wrapper=$(“.clone_services”);//输入包装器 var x=1;//初始
$(函数(){
var wrapper=$(“.clone_services”);//输入包装器
var x=1;//初始索引计数
$(“#发票”).on('focus','clone#u services',function(){
$('.new').focus(函数(){//在“添加输入”按钮上单击
$(this.removeClass('new');
$(包装器).append(“
”);
});
});
})) 请查看更新的fiddle: 无需向2个元素添加
focus
事件。一个就够了
$(function() {
var wrapper = $(".clone_services"); //Input wrapper
var x = 1; //initial index count
$('.clone_services').on('focus','.new' , function(){
$(this).removeClass('new');
$(wrapper).append('<br><input type="text" class="services new" name="services['+ x +']"/>');
x++;
});
});
$(函数(){
var wrapper=$(“.clone_services”);//输入包装器
var x=1;//初始索引计数
$('.clone_services')。on('focus','.new',function(){
$(this.removeClass('new');
$(包装器).append(“
”);
x++;
});
});
这个怎么样:
$(document).on('focus', '.clone_services > .new', function () {
var $line = $(this).clone();
$(this).removeClass('new').closest('.clone_services').append($line);
});
你可以把它和
$(document).on('blur', '.clone_services > *', function () {
if ( $.trim( $(this).val()) === "" ) $(this).remove();
});
那太好了。但我不完全理解它是如何工作的。这个
.clone\u services>.new'
部分做什么?没关系。我没有意识到它是一个选择器。我想这是一个比符号更伟大的东西。@skribe我必须问这个问题:你得到两个对你有帮助的答案,但没有一个能帮助你。。。原因是什么?啊。现在我明白我的错误了。这正是我想要的。
$(document).on('blur', '.clone_services > *', function () {
if ( $.trim( $(this).val()) === "" ) $(this).remove();
});