2016-08-13 1 views
1

href 속성을 포함하는 a 요소가 있습니다. 그것을 클릭하면 사용자가 해당 작업을 확인하도록 데이터가 삭제됩니다. href 속성은 GET 매개 변수에서 삭제 될 데이터의 ID를 가진 php 파일을 참조합니다. 나는 그 JS의 다음 부분을 실행해야, 온 클릭 속성을 추가했습니다 (그것은 확인을 요청하는 의미 UI 모달 방송) :<a> 요소에서 onclick 사용

confirmmodal = function() { 
    beforeunload = function() { 
     $('.ui.basic.modal') 
      .modal({ 
       closable: false, 
       onDeny: function() { 
        return false; 
       }, 
       onApprove: function() { 
        return true; 
       } 
      }) 
      .modal('show') 
     ; 
} 
} 

을하지만이 프로그램을 실행할 때 여전히 삭제할 것 페이지로 이동 데이터 (아직 작성하지 않았으므로 삭제되지 않습니다). onclick 속성에 href 속성보다 우선 순위를 부여하는 옵션이 있습니까?

+1

어떤 모달을 사용합니까, 어떤 jQuery 플러그인, 어떤 HTML 코드가 뒤에 있습니까? 어떻게 모달이라고 부릅니까? 모든 필수 코드를 입력하십시오. – skobaljic

+1

[jQuery로 기본 링크 클릭 동작을 중지하는 방법] (http://stackoverflow.com/questions/5632031/how-to-stop-default-link-click-behavior-with-jquery)의 가능한 복제본. 콜백 외부에서해야하므로 기본 금지를 사용하십시오. –

+0

링크 포인트의 href를 가져 와서 모달 창을 트리거 할 수없고 확인 모달이 다른 페이지에 대한 링크를 포함하거나 해당 페이지에 AJAX 호출을 수행하는 함수를 트리거 할 수없는 이유는 무엇입니까? 모자 방법으로 페이지의 삭제 링크는 삭제 작업을 유발할 수 없으며 삭제를 트리거하지 않고 모달을 닫을 수 있습니다. 그렇지 않으면 "확인"이 눌려지면 삭제 조치가 발생할 수 있습니다. – gavgrif

답변

1

코드 끝에 event.preventDefault()을 추가해야합니다.

예 :

<a href="somePage.php" onclick="showDialog(event)">Delete</a> 



function showDialog(e) { 
    // custom code to show dialog here 
    e.preventDefault(); 
} 
0

좋아, 나는뿐만 아니라 계정에 gavgrif의 의견을 복용 스크립트에 대한 몇 가지 비틀기와 함께 있었을 것입니다.

은 내가 <a> 요소는 조금 다르게, 그래서 더이상 href 속성이 포함되지 않습니다 : 아이콘을 클릭하면

<a title="Delete post" onclick="confirmmodal(this)" data-postid="'. $row['postnr'] .'"><i class="large delete middle aligned icon"></i></a> 

지금의 postid 그렇게뿐만 아니라, JS 사용할 수 있습니다 확인 버튼을 클릭 할 때 우리는 단지 GET 매개 변수가 참조 할 수 있습니다 :

반 추한 수정이지만, 그 많은 선이 아니다, 나는 S를 모르는
confirmmodal = function (a) { 
    $('.ui.basic.modal') 
     .modal({ 
      closable: false, 
      onDeny: function() { 
       return true; 
      }, 
      onApprove: function() { 
       window.location.href = "deletepost.php?id=" + a.dataset.postid 
       return true; 
      } 
     }) 
     .modal('show') 
    ; 
} 

*** JQuery에 대해서 :

모든 도움을 주셔서 감사합니다. preventDefault()으로 거의 도착했지만 조치가 확인되면 계속할 수 없으므로보다 쉬운 해결책입니다.

관련 문제