【问题标题】:jQuery dynamic creation of input fields based on the number selected in a dropdown menu?jQuery根据下拉菜单中选择的数字动态创建输入字段?
【发布时间】:2010-11-12 13:18:28
【问题描述】:

我正在尝试按照以下方式完成一些事情:

http://devblog.jasonhuck.com/assets/infiniteformrows.html

但是...我想显示一个下拉选择字段,其值为 1 到 20,根据在该字段中选择的值,我将向用户显示多少个输入字段以在页面上填写(当然,无需刷新)。

所以,如果我在下拉框中选择 4(最初没有显示输入字段,默认值应为 0),则应在其正下方创建 4 行名称和电子邮件输入字段,所有字段均具有唯一标识符等等(用于存储到mysql中)。

在我的一生中,我找不到任何人这样做的例子,所以我想我会在这里提出一个小挑战。

提前致谢!

【问题讨论】:

    标签: jquery forms select dynamic input


    【解决方案1】:

    您需要做的就是找出用户更改下拉菜单时选择了哪个数字,然后遍历该数字,为每次迭代创建两个输入字段。

    $("#selectBox").change(function() {
      var htmlString = "";
      var len = $("options:selected", this).val();
      for (var i = 0; i < len; i++) {
        htmlString += "<input type='text' class='email'>";
        htmlString += "<input type='text' class='name'>";
      }
      $("#outputArea").html(htmlString);
    }
    

    您甚至可能想让它更智能,因此它会检查您已经拥有多少个输入字段,然后只根据需要创建或删除一些。这样,它会快一点(:

    【讨论】:

      【解决方案2】:

      这将在页面上的选择之后插入一个文本框。每次更改数字时都会触发。

      var idFun = 0;
      $('select').change(function() { 
        var end=$(this).val(); 
        for (var i=0;i<end;i++) {
          $('<div><input id="fun' + (idFun++) + ' type="text" ></div>').appendTo($('#myinputs'));
      
        }
      });
      

      HTML:

      <select>
        ... 1 to 20 here
      </select>
      <div id="myinputs"></div>
      

      希望这会有所帮助。

      【讨论】:

      【解决方案3】:

      真正的解决方案:

      <script type="text/javascript">
      
          $(document).ready(function() {
      
              $("#AantalAntw").change(function() {
                  var htmlString = "";
                  var len = $("#AantalAntw").val();
                  for (var i = 0; i < len; i++) {
                      htmlString += "<input type='text' class='email'>";
                      htmlString += "<input type='text' class='name'>";
                  }
                  alert(htmlString);
                  $("#antwblok").html(htmlString);
              });
          });
      
      </script>
      

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-14
      • 1970-01-01
      • 2017-09-29
      • 2017-05-18
      • 1970-01-01
      • 2019-01-19
      • 2023-03-21
      • 1970-01-01
      相关资源
      最近更新 更多