在超链接上动态添加选择框,单击

时间:2018-06-29 16:45:20

标签: javascript jquery

我想动态添加<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>

1 个答案:

答案 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>