2011-09-13 4 views
0

사용자가 행으로 구성된 테이블과 함께 표시되는 JSP 페이지가 있습니다. 사용자가 원하는 경우 새 행을 추가하고 저장 버튼을 누르면 자바 스크립트를 통해 수행되는 데이터가 테이블에 삽입됩니다.javaScript를 통해 작업을 롤백하는 방법은 무엇입니까?

내 요청은 사용자가 새 행을 추가하고 세부 정보를 입력한다는 것입니다. 사용자가 리셋 버튼을 클릭하면 새 행에 입력 된 데이터가 지워지지만 사용자가 시작했을 때 표시되었던 원래 데이터를 모두 제거하지는 않습니다.

도와주세요.

+1

uhm ... 그래서 질문이 무엇입니까? 어떻게 행을 비게 할 수 있니? –

+0

은 문제를 이해할 수 없습니다. –

+0

사용자가 새로 추가 한 행을 삭제하여 테이블 형식의 데이터 상태를 재설정하려고합니다. – 321X

답변

0

새로운 내용과 그렇지 않은 내용을 감지 할 수 있습니다.

여러 가지 방법이 있습니다. 확실히 jQuery 또는 다른 자바 스크립트 라이브러리를 사용합니다.

는 jsFiddle에서 내 jQuery를 예를 참조하십시오 http://jsfiddle.net/Xvm9L/

나는 새 행에 추가 속성을 추가했습니다. isnew 속성이 true 인 행을 제거하십시오. New Row (새 행) 버튼을 클릭 할 때이 속성을 행에 추가해야합니다. 나는 귀하의 질문에 두 부분으로되어 생각 http://jsfiddle.net/Xvm9L/1/

+0

ther은 JavaScript와 관련이 있습니까? – Sadique

+0

@Sadique, 네, 있습니다! jQuery가 그것을 할 수 있다면, 정상적인 자바가 가장 확실하게 할 수 있습니다! 링크에 대한 업데이트 된 답변을 참조하십시오. 이것이 당신이 찾고있는 것이라면 내 게시물을 대답으로 표시하십시오. – 321X

+0

Pff, 잠시 전에 정상적인 자바 스크립트를 프로그래밍했습니다 :-) – 321X

1

: 여기


일반 자바 스크립트와 함께 작동 버전입니다 첫째, 새로운 행을 삭제해야합니다; 둘째, AJAX를 사용하여 서버의 데이터를 업데이트하는 경우 재설정을 동기화하는 것을 잊지 마십시오.

@ 321X 각 행에 속성을 추가하기 만하면 쉽게 지울 수 있습니다. 행을 추가 할 때 고유 식별자를 사용하는 다른 객체에 데이터의 각 객체를 저장하는 것이 좋습니다. 각 항목을 반복하고 서버를 업데이트 할 수 있습니다 (필요한 경우). 다음은 몇 가지 거친 JS-의사 에스크 코드 ($ === jQuery)입니다 :

var newRowsList = {}; 

$('.addRow').click(function(ev) { 
    var newRow = {}; 
    // populate newRow with user-data and add it to the master list 
    newRowList[ /* uid */ ] = newRow; 
    // if you are using AJAX to sync row-by-row changes: 
    $.ajax({ 
     // url, post, etc... 
     success : function() { 
      // now generate the DOM elements however you want 
      // add the new row to the table 
      $(/* row data */).appendTo('#dataTable'); 
     } 
    }); 
}); 

$('#resetTable').click(function(ev) { 
    for (var i in newRowsList) (function(item, data) { 
     $.ajax({ 
      // url, post, etc... 
      success : function() { 
       // destroy the row by using the uid passed in 
       $('.' + item).remove(); 
       // and remove the item from the list 
       newRowsList[ item ] = null; 
      } 
     }); 
    })(i, newRowsList[ i ]); 
}); 

꽤하지 않습니다, 그러나 희망이 점을 설명합니다. 고급 기능이 필요한지 여부에 따라 제거 된 항목을 시퀀스 목록에 추가하여 실수로 재설정 버튼을 클릭하면 변경 사항을 되돌릴 수 있습니다.

+0

@Trev .. 당신의 방법은 JavaScript 만 사용하고 AJAX를 사용하는 것을 제한하기 때문에 나에게 진보 된 것입니다. – Sadique

+0

ㅎ, 알았습니다. 내 방법에 대해 궁금한 점이 있으면 알려 주시면 설명 드리겠습니다. –

관련 문제