如何动态添加文本框?

时间:2009-10-20 05:59:07

标签: php javascript clone

帮助这个标准吗?

用户可以根据需要添加任意数量的名称,ADD NAME链接可用于此目的。

我该如何处理这个规范? 请查看以下规格:

alt text

感谢。

2 个答案:

答案 0 :(得分:2)

var input = $('#input').clone().attr('name', 'name2').attr('id', 'input-2').appendTo('body')

您可以进一步使用$(el).clone()克隆整个row / div,然后执行.find('input')并修改name和id属性值,使它们唯一且不会发生冲突。如果要复制事件处理程序,可以将true传递给克隆。

不完整的非jQuery“解决方案”,因为我不知道完全 OP在哪一点,因为他声称他现在可以克隆节点..

  <div id="wrap">
    <div class="foo">
      <label for="first_name">name:</label><input type="text" name="first_name[]  " id="first_name"><a href="#">delete</a>
    </div>
    <a href="#" id="add">add name</a>
  </div>
  <script>
  (function() {
    var add = document.getElementById('add'), counter = 0;
    add.onclick = function() {
      var rows = document.getElementsByTagName('div'), last = false;
      if ( rows.length ) {
        for ( var i = rows.length; i--; ) {
            if ( last ) { break; }
            if ( rows[i].className.length && ( ' ' + rows[i].className + ' ' ).indexOf(' foo ') != -1 ) {
              last = rows[i];
            }
        }
      }
      if ( last ) {
        var newNode = last.cloneNode(true), wrap = document.getElementById('wrap'), input = newNode.getElementsByTagName('input');
        input.id = input.id + (counter++);
        wrap.appendChild( newNode );
      }
    }
  })();

答案 1 :(得分:1)

希望这很顺利。

<html>
<script type="text/javascript">
    function addfieldset() {
        var namefieldset = document.getElementById("name").cloneNode(true);
        document.getElementById("names").appendChild( namefieldset );
    }
    function deletefieldset( e ) {
        var namefieldset = e.parentNode;
        namefieldset.parentNode.removeChild( namefieldset );
    }
</script>
<body>
    <div id="names"><div id="name">Name: <input name="namefield" type="text"/><a href="#" onclick="deletefieldset( this )">delete</a></div></div>
    <input id="addnamebtn" type="button" value="Add Name" onclick="addfieldset()"/>
</body>
</html>

我记得“quirkmodes”的一篇优秀文章简要解释了这一点。我仍然拿着我的书签。这是is

美好的一天!