我想动态添加<select>
元素,但是当我单击“添加更多字段”时,没有添加<select>
元素。这是因为我使用超链接而不是按钮吗? (按钮也不起作用。)
怎么了?
$(document).ready(function() {
var max_fields = 5; //maximum select boxes allowed
var wrapper = $(".input_fields_wrap"); //Fields wrapper
var add_button = $(".add_field_button"); //Add button ID
var x = 1;
$(add_button).click(function(e) { //on add button click
e.preventDefault();
if (x < max_fields) { //max box allowed
x++; //text box increment
$(wrapper).append('<div><select name="res_id[]"><option value="">select resort</option><option value="1664">Aalen</option></select><a href="#" class="remove_field">Remove</a></div>'); //add input box
}
});
$(wrapper).on("click", ".remove_field", function(e) { //user click on remove text
e.preventDefault();
$(this).parent('div').remove();
x--;
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="input_fields_wrap">
<a href="#" class="add_field_button">Add More Fields</a>
</div>
答案 0 :(得分:1)
您可以使用代码顶部的变量来保存JQuery对象。然后,您围绕创建的对象($(add_button)
)再次使用JQuery构造函数。您应该只使用add_button
而不使用包装构造函数,因为我不确定您的操作方式是否会起作用。另外,我喜欢使用$(function(){})
,因为它可以确保DOM已加载。
$(function() {
var max_fields = 5; //maximum select boxes allowed
var wrapper = $(".input_fields_wrap"); //Fields wrapper
var add_button = $(".add_field_button"); //Add button ID
var x = 1;
add_button.click(function(e) { //on add button click
e.preventDefault();
if (x < max_fields) { //max box allowed
x++; //text box increment
wrapper.append('<div><select name="res_id[]"><option value="">select resort</option><option value="1664">Aalen</option></select><a href="#" class="remove_field">Remove</a></div>'); //add input box
}
});
wrapper.on("click", ".remove_field", function(e) { //user click on remove text
e.preventDefault();
$(this).parent('div').remove();
x--;
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="input_fields_wrap">
<a href="#" class="add_field_button">Add More Fields</a>
</div>