添加一个“;删除“;通过数组在文本框结果旁边进行链接


Adding a "REMOVE" link beside a textbox result by an array

[+]//每次单击此按钮,文本框都会生成,并且我希望在每个文本框旁边都有一个链接,当我单击"删除"时,链接是"删除",文本框会删除。。

[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>

这很简单。

只需在文本字段数组中添加一个id属性,该属性将分配给每个新创建的文本区域,如下所示:

t1[i].id='some_unique_suffix'+i
t1[i].onClick='remove("some_unique_suffix"'+i+')'

然后,你可以通过循环在每个文本字段后创建一个删除链接,并将该特定文本字段的id传递给一个删除函数,该函数将在点击删除链接时调用,如下所示:

function remove(id)
{
    $('#some_unique_suffix'+id).remove(); 
}

希望你明白。

您可以添加一个删除按钮和输入标签,如下所示:

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);

工作示例:http://jsfiddle.net/jfriend00/nbXak/

<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>

试试看:http://jsfiddle.net/Z3L5C/