2013-01-20 3 views
1
여기

의 고유 ID와 함께 테이블에 행을 제거하는 노력는 추가 N 요소

<table id="table1"> 
<tr> 
<td><label>name</label><input type="text" id= "name1"/></td> 
<td><label>age</label><input type="text" id= "age1"/></td> 
<td><input type="button" id= "addRow"style="background-image:url("images/addicon.png");"/></td> 
</tr> 

및 jQuery 코드 m 누군가가 연속 2 회를 ​​추가하고 삭제할 때 이제 문제가 온다

$("#addRow").live("click", function (e, index) { 
var val = ("#table1 tr").length(); 
val++; 
    $('#table1 tbody > tr:last').after('<tr><td><label>name</label><input type="text" id= "name"'+val+'/></td><td><label>age</label><input type="text" id= "age"'+val+'/></td><td><input type="button" id= "addRow"style="background-image:url("images/addicon.png");"/></td><td><input type=button id="deleteRow" style="background-image:url("images/removeicon.png");"></td>'); 
    }); 
    $("#deleteRow").live("click",function(e,index){ 
    $(this).parent().closest("tr").remove(); 
    }); 

있는 데모 테이블의 행 즉 val은 name2, name3이됩니다. name2가 삭제되었다고 가정하면 다시 행 번호를 추가합니다. 행이 2이므로 val ++ 은 3이되고 이되고 새 행은 name3을 id로 갖게됩니다. 이것은 나에게 문제가되고 있습니다. 실제로 원하는 것은 행 수를 유지해야합니다. 1 2 3 ... 삭제 된 행과 관계없이 이처럼. 누구나 나를 도와 줄 수 있습니까? 제가 튜토리얼을 많이 읽었지만 그 중 아무도이 질문을 올린 균일 한 행 개수를 유지하지 못했습니다.

답변

1

name[]과 같은 입력 이름을 사용하여 양식에 값 배열을 사용할 수 있습니다. 이것은 당신의 관심사는 레이블 인 경우 등 name1, name2, 같은 것들을 사용하는 것보다 쉽게, 당신과 같이, 라벨의 입력을 포장하고 for를 건너 뛸 수 있습니다 :

<label>String: <input></label> 

String:을 클릭하면 입력 초점을 맞추고있다.

보유하고 싶은 것을 고수하려면 val 범위를 .click 외부에 저장하고 매번 증가시킵니다. 길이에 의지하지 마십시오. 그런데


, 당신은 또한 사용할 수 가정 .on.live 전환해야한다.

+0

안녕하세요, m 웹 사이트 디자인에 새로운, 이름과 같은 배열을 만드는 방법을 도와 줄 수 있습니다 [] ur 말하고 자동으로 고유 한 ID를 얻으려고 이름 []을 주려고했는데 새 행을 추가하면 ID가 표시됩니다. 이름이 [] 인 모든 요소는 고유 한 ID를 가져야 만합니다. 접근 방식은 어떤 것이 될 수 있습니다 .. – virender

+0

@virender ''으로 작성하십시오. 왜 모든 입력에 대해 ID가 필요한가요? –

+0

입력의 ID에 의존하는 m 요소를 사용하고 있는데, 이것은 데모 테이블 일뿐입니다. 실제로는 고유 ID condtion이 필수입니다. 2 id가 같으면 잘못된 데이터가 채워집니다. – virender