1

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

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

3 回答 3

2

这很简单。

只需在您的文本字段数组中添加一个 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(); 
}

希望你能明白。

于 2012-08-28T06:20:32.863 回答
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);

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

于 2012-08-28T06:24:37.537 回答
0
<script type="text/javascript">
var i=0;
function createtext() {
    i++;
    $('<div id="field'+i+'">​&lt;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/

于 2012-08-28T06:40:18.377 回答