[+] //每次单击此按钮时,文本框都会生成,我希望每个文本框旁边都有一个链接,链接是"删除"当我点击"删除"文本框将删除..
[hello1]删除
[hello2]删除
[hello3]删除
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
var i=0,j=0;
var t1= new Array();
function createtext(){
i++;
t1[i]=document.createElement('input');
t1[i].type='text';
t1[i].name='text'+i;
t1[i].value = "hello"+i;
t1[i].size = 10;
document.forms[0].appendChild(t1[i]);
var mybr=document.createElement("br");
document.forms[0].appendChild(mybr);
}
</SCRIPT>
</HEAD>
<BODY >
<form action="" method="get" name="f1">
<input name="b1" type="button" onClick="createtext()" value="+">
<input name="b1" type="Submit"><br>
</form>
</BODY>
</HTML>
答案 0 :(得分:2)
这很简单。
只需添加一个带有文本字段数组的id属性,该数组将分配给每个新创建的textarea,如下所示:
t1[i].id='some_unique_suffix'+i
t1[i].onClick='remove("some_unique_suffix"'+i+')'
然后你可以继续通过你的循环在每个文本字段之后创建一个删除链接,并将该特定文本字段的id传递给一个删除函数,该函数将在点击删除链接时被调用,如下所示:
function remove(id)
{
$('#some_unique_suffix'+id).remove();
}
希望你明白这一点。
答案 1 :(得分:0)
您可以像这样添加删除按钮和输入标记:
var i=0,j=0;
var t1= [];
function add(){
i++;
var parent = document.forms[0];
var div = document.createElement('div');
var input = document.createElement('input');
input.type='text';
input.name='text'+i;
input.value = "hello"+i;
input.size = 10;
t1.push(input);
div.appendChild(input);
var removeButton = document.createElement("button");
removeButton.innerHTML = "Remove";
removeButton.onclick = function(e) {
this.parentNode.parentNode.removeChild(this.parentNode);
return(false);
};
div.appendChild(removeButton);
parent.appendChild(div);
}
工作演示:http://jsfiddle.net/jfriend00/ky9nv/
此代码通过将输入元素及其相关按钮封装在包含div中,可以更轻松地删除它。然后,单击的按钮可以获取它的父容器并删除它。
而且,既然你的问题是用jQuery标记的(以为它不会在这里节省很多),这里有一个使用jQuery的版本:
var i=0,j=0;
var t1= [];
function add(){
i++;
var div = $('<div>');
var input = $('<input>')
.attr({
size: '10',
type: 'text',
name: 'text' + i,
value: 'hello' + i
}).appendTo(div).get(0);
t1.push(input);
$('<button>Remove</button>')
.click(function() {
$(this).parent().remove();
}).appendTo(div);
$("#myForm").append(div);
}
add();
add();
$("#add").click(add);
答案 2 :(得分:0)
<script type="text/javascript">
var i=0;
function createtext() {
i++;
$('<div id="field'+i+'"><input type="text" name="text'+i+'" value="Hello'+i+'" size="10" /> <a href="#" onclick="removeField(\'field'+i+'\');">Remove</a></div>').appendTo('#inputsPlaceholder');
}
function removeField (id) {
$('#'+id).remove();
}
</script>
HTML:
<form action="" method="get" name="f1" id="f1">
<input name="b1" type="button" onclick="createtext();" value="+" />
<div id="inputsPlaceholder"></div>
<input name="b1" type="submit" />
</form>