2013-02-06 4 views
0

내 웹 페이지에 특정 수의 행이있는 데이터 테이블이 있습니다. 각 행에있는 확인란을 클릭하고 마지막으로 삭제 버튼을 클릭하여 해당 테이블에서 여러 행을 삭제할 수있는 옵션을 제공합니다. 각 행을 삭제하려면 사용자가 특정 입력을 요구하고 해당 입력 상자 내에서 확인 또는 삭제 버튼을 클릭해야합니다. 이제 내 질문은 사용자가 현재 작업을 수행 할 때까지 다음 입력 상자를 표시하지 않도록 코드를 유지하는 방법입니다. 어떤 것은 경고 상자와 같습니다. 모델 상자는 실행을 유지하지 않기 때문에 도움이되지 않습니다. 대답은 더 할 수없는 경우 how to let javascript wait until certain event happens모방 알림 상자 동작

making a function to wait an event before returning

가능한 중복. 그런 다음 어떻게 그런 GUI 시나리오를 해결할 수 있을까요?

답변

0

사용자 정의 모달의 버튼 클릭은 실제로 버튼을 클릭하지 않고 처리 만 수행해야합니다.

버튼을 클릭하면 삭제하려는 데이터가있는 필드가 설정됩니다. 대화 상자의 단추는 원래 행에서 수행 한 작업을 수행합니다.

다른 옵션은 return window.confirm("Are you sure?");

0
  1. 배열에 선택된 행의 ID를 추가 사용하는 것입니다.
  2. 삭제 단추를 클릭하면 첫 번째로 선택된 행 (배열의 첫 번째 항목)에 대한 사용자 지정 확인 대화 상자가 표시됩니다. 당신의 경고의 버튼 중 하나를 클릭
  3. 는 무엇을 어떻게해야하고
    • 대화
    • 은 마지막 요소까지 배열의 다음 항목에 대한 두 번째와 세 번째 단계를 실행 닫힙니다 않습니다.

      자바 스크립트

      <script> 
      var itemsToDelete = new Array; 
      function updateItemsToDelete(row) { 
          var getIndex = itemsToDelete.indexOf(row.id); 
          if (getIndex == -1) { 
           itemsToDelete.push(row.id); 
          } else { 
           itemsToDelete.splice(getIndex, 1); 
          } 
      } 
      
      
      function removeRow(rowID) { 
          var toDelete = document.getElementById(rowID); 
          toDelete.parentNode.removeChild(toDelete); 
          itemsToDelete.shift(); 
          requestConfirmation(); 
      } 
      function nextPlease() { 
          itemsToDelete.shift(); 
          requestConfirmation(); 
      } 
      
      function requestConfirmation() { 
          if (itemsToDelete.length == 0) { 
           document.getElementById("box").style.display = "none"; 
           return; 
          } 
      
          document.getElementById("box").style.display = "block"; 
          document.getElementById("message").innerHTML = "Remove " + itemsToDelete[0] + "?"; 
          document.getElementById("yes_button").onclick = function() { removeRow(itemsToDelete[0]); }; 
          document.getElementById("no_button").onclick = nextPlease; 
      } 
      </script> 
      

      HTML

      <div id="box" style="display:none;"> 
          <span id="message"></span> 
          <input type="button" id="yes_button" value="yes" /> 
          <input type="button" id="no_button" value="no" /> 
      </div> 
      <table> 
          <tr id="row1"> 
           <td> 
            <input type="checkbox" onclick="updateItemsToDelete(this.parentNode.parentNode);" /> 
           </td> 
           <td>row 1</td> 
          </tr> 
          <tr id="row2"> 
           <td> 
            <input type="checkbox" onclick="updateItemsToDelete(this.parentNode.parentNode);" /> 
           </td> 
           <td>row 2</td> 
          </tr> 
          <tr id="row3"> 
           <td> 
            <input type="checkbox" onclick="updateItemsToDelete(this.parentNode.parentNode);" /> 
           </td> 
           <td>row 3</td> 
          </tr> 
          <!-- and so on... --> 
      </table> 
      <input type="button" onclick="requestConfirmation();" value="delete selected" /> 
      
      : 여기

은 기본 예제