javascript - jQuery 添加/删除文本框

标签 javascript jquery html css web

<分区>

脚本:

  $(document).ready(function() {

    var counter = 2;

    $("#addButton").click(function() {

      if (counter < 2) {
        alert("Add more textbox");
        return false;
      }

      var newTextBoxDiv = $(document.createElement('div'))
        .attr("id", 'TextBoxDiv' + counter);

      newTextBoxDiv.after().html('<label>Textbox #' + counter + ' : </label>' +
        '<input type="text" name="textbox' + counter +
        '" id="textbox' + counter + '" value="" >' +
        '<input type="button" name="button' + counter +
        '" id="removeButton' + counter + '" value="Remove Button">');
      newTextBoxDiv.appendTo("#TextBoxesGroup");


      counter++;
    });

    $("#removeButton").click(function() {

      $("#TextBoxDiv" + counter).remove();

      if (counter == 2) {
        alert("No more textbox to remove");
        return false;
      }


    });


  });

</script>

HTML:

<div id='TextBoxesGroup'>
  <div id="TextBoxDiv1">
    <label>Textbox #1 : </label>
    <input type='textbox' id='textbox1'>
    <input type='button' value='Remove Button' id='removeButton'>
  </div>
</div>
<input type='button' value='Add Button' id='addButton'>

enter image description here

我需要让删除按钮起作用。当我按下侧面的相应按钮时,只有它旁边的文本框才会被删除。

最佳答案

您错过了一些基本的东西。 这是一个可能的解决方案:

$(document).ready(function() {
  var counter = 2;
  $("#addButton").click(function() {
    if (counter < 2) {
      alert("Add more textbox");
      return false;
    }

    var newTextBoxDiv = $(document.createElement('div'))
      .attr("id", 'TextBoxDiv' + counter).attr("class", 'TextBoxDiv');

    newTextBoxDiv.after().html('<label>Textbox #' + counter + ' : </label>' +
      '<input type="text" name="textbox' + counter +
      '" id="textbox' + counter + '" value="" >' +
      '<input type="button" name="button' + counter +
      '" class="removeButton" value="Remove Button">');
    newTextBoxDiv.appendTo("#TextBoxesGroup");

    counter++;
  });

  $("body").on("click", ".removeButton", function() {
    if (counter <= 2) {
      alert("No more textbox to remove");
      return false;
    }

    $(this).closest('.TextBoxDiv').remove();
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<div id='TextBoxesGroup'>
  <div id="TextBoxDiv1">
    <label>Textbox #1 : </label>
    <input type='textbox' id='textbox1'>
    <input type='button' value='Remove Button' class='removeButton'>
  </div>
</div>
<input type='button' value='Add Button' id='addButton'>

由于您是新来的,如果可行,请不要忘记接受答案。

关于javascript - jQuery 添加/删除文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42184385/

上一篇:html - 如何在一行中制作图标和 `a`

下一篇:html - 使用多个 :not pseudo class 在 CSS 选择器中排除多个 div

相关文章:

html - 如何调整图像大小以适合另一幅图像?

java - 获取文档中所有 HTML 标签的字符位置的推荐方法

javascript - 如果存在我的类(class)以外的类(class)

javascript - jquery 检测并移除被点击的元素

Javascript/jQuery : Split content in two parts

javascript - scrollIntoView() 不适用于 IOS safari 和 chrome?

jquery - 移除 navbar-toggleable 后隐藏的导航栏元素

javascript - mathjax 预览不起作用

javascript - 如何更新 d3.js 中的气泡图?

javascript - Highcharts 有没有办法在缩放后调整绘图带的大小?