帮助这个标准吗?
用户可以根据需要添加任意数量的名称,ADD NAME链接可用于此目的。
我该如何处理这个规范? 请查看以下规格:
感谢。
答案 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。
美好的一天!