以下代码不断添加文本框。我希望它只是添加第一个选择然后停止的东西。如果你按一个,然后按两个,它会再增加两个,然后如果你选择更多的话就继续这样做。
[One, Three, Five, ]
$(function(){
$('select').on('change', function() {
i = 1
var y = parseInt(this.value) + 1
while (i != y)
{
$("#boxes").append('<input type="text" name="ticket_'+ i + '_name" placeholder="Ticket ' + i +' Type">');
$("#boxes").append('<input type="text" name="ticket_'+ i + '_price" placeholder="Ticket ' + i +' Price">');
$("#boxes").append('<input type="text" name="ticket_'+ i + '_quantity" placeholder="Ticket ' + i +' Quantity">');
$("#boxes").append('<p></p>');
i = i + 1
if (i == y){
return false
}
}
})
});
答案 0 :(得分:1)
`git commit -am "Committing from ruby script"`
函数会将您所加入的内容添加到您选择的元素的末尾(这是追加的定义)。所以你的代码说“每当选择一个选择选项时,最后加上这些选项”。
然而,听起来你不想在最后添加新的,你希望它们是唯一的,这意味着事先摆脱第一个。
在.append()
行上方,添加while(i != y)
。 This将删除当前#boxes中的所有元素,为您提供一个空字段,用于放置新一轮字段。
另外,旁注,而不是$('#boxes').empty();
以及while
和if
业务,使用return false
循环可能会提供更好的服务。