Bestätigen Sie das Löschen mit dem Modalfeld von Bootstrap 3

Lesezeit: 8 Minuten

Bestatigen Sie das Loschen mit dem Modalfeld von Bootstrap 3
Rosa Code

Ich muss das Löschen mit Bootstrap 3 Modal Box (JA/NEIN) bestätigen. Wie kann ich das erstellen?

HTML Quelltext:

<form action="blah" method="POST">
    <button class="btn" type="submit" name="remove_levels" value="delete">
        <span class="fa fa-times"></span> Delete
    </button>
</form>

  • stackoverflow.com/a/42346781/4316802

    – Alexej Nikitenko

    20. Februar 17 um 14:11 Uhr

1643019066 610 Bestatigen Sie das Loschen mit dem Modalfeld von Bootstrap 3
Nigel Engel

Sie benötigen das Modal in Ihrem HTML. Wenn auf die Schaltfläche „Löschen“ geklickt wird, wird das Modal angezeigt. Es ist auch wichtig zu verhindern, dass das Klicken auf diese Schaltfläche das Formular absendet. Wenn Sie auf die Bestätigung klicken, wird das Formular gesendet.

   

 $('button[name="remove_levels"]').on('click', function(e) {
      var $form = $(this).closest('form');
      e.preventDefault();
      $('#confirm').modal({
          backdrop: 'static',
          keyboard: false
      })
      .on('click', '#delete', function(e) {
          $form.trigger('submit');
        });
      $("#cancel").on('click',function(e){
       e.preventDefault();
       $('#confirm').modal.model('hide');
      });
    });
<link href="http://getbootstrap.com/2.3.2/assets/css/bootstrap.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://getbootstrap.com/2.3.2/assets/js/bootstrap.js"></script>
<form action="#" method="POST">
  <button class="btn btn-danger btn-xs" type="submit" name="remove_levels" value="delete"><span class="fa fa-times"></span> delete</button>
</form>

<div id="confirm" class="modal">
  <div class="modal-body">
    Are you sure?
  </div>
  <div class="modal-footer">
    <button type="button" data-dismiss="modal" class="btn btn-primary" id="delete">Delete</button>
    <button type="button" data-dismiss="modal" class="btn">Cancel</button>
  </div>
</div>

  • Das funktioniert großartig, mit einer Randbemerkung: Wenn ich auf Löschen klicke, nachdem ich auf Abbrechen geklickt habe, dann klicke ich erneut auf Löschen, in meinem Fall wird die Übermittlung zweimal gesendet. Es sollte nur eine eingereicht werden.

    – Chrys

    4. Dezember 14 um 18:21 Uhr


  • @Khrys, Sie sollten überprüfen, ob Sie eingeschlossen haben e.prevenDefault()

    – Nathan Koop

    19. Dezember 14 um 20:49 Uhr

  • Hier gibt es ein Problem. Beachten Sie, dass, wenn Sie dies verwenden, um zu bestätigen, etwas mit einer Art ID zu löschen. Was passiert ist, wenn Sie auf “Abbrechen” klicken, wird das Ereignis immer noch an das Modal angehängt. Wenn Sie danach auf eine andere Sache zum Löschen klicken, werden beide gelöscht.

    – Pedro Lourenço

    11. April 16 um 11:07 Uhr

  • für das Problem zu den vorherigen Kommentaren bemerkte Pedro. $(‘#confirm’).unbind() hilft, angehängte Ereignisse zu lösen

    – schiebt

    10. Mai 16 um 7:29 Uhr

  • Überprüfen Sie meine Antwort hier – stackoverflow.com/questions/8982295/… für eine wiederverwendbare Komponente.

    – Maleen Abewardana

    18. Mai ’16 um 18:42 Uhr

Sie können verwenden Bootbox Dialogboxen

$(document).ready(function() {

  $('#btnDelete').click(function() {
    bootbox.confirm("Are you sure want to delete?", function(result) {
      alert("Confirm result: " + result);
    });
  });
});

Plunker-Demo

  • Seien Sie vorsichtig, Bootbox kann mit Bootstrap-Modalen in Konflikt geraten. Tut mir leid, dass ich auf die alte Frage geantwortet habe, aber ich bin gerade auf dieses Problem gestoßen.

    – SuperManSL

    5. Januar 16 um 21:51 Uhr

Bestatigen Sie das Loschen mit dem Modalfeld von Bootstrap 3
Alessandro

Ich habe gerade heute das gleiche Problem. Dies ist meine Lösung (die meiner Meinung nach besser und einfacher ist):

<!-- Modal dialog -->
<div class="modal fade" id="frmPrenotazione" tabindex="-1">
    <!-- CUTTED -->
    <div id="step1" class="modal-footer">
      <button type="button" class="glyphicon glyphicon-erase btn btn-default" id="btnDelete"> Delete</button>
    </div>
</div>

<!-- Modal confirm -->
<div class="modal" id="confirmModal" style="display: none; z-index: 1050;">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-body" id="confirmMessage">
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" id="confirmOk">Ok</button>
                <button type="button" class="btn btn-default" id="confirmCancel">Cancel</button>
            </div>
        </div>
    </div>
</div>

Und in meiner .js:

$('#btnDelete').on('click', function(e){
    confirmDialog(YOUR_MESSAGE_STRING_CONST, function(){
        //My code to delete
    });
});

function confirmDialog(message, onConfirm){
    var fClose = function(){
        modal.modal("hide");
    };
    var modal = $("#confirmModal");
    modal.modal("show");
    $("#confirmMessage").empty().append(message);
    $("#confirmOk").unbind().one('click', onConfirm).one('click', fClose);
    $("#confirmCancel").unbind().one("click", fClose);
}

Verwenden unbind Vor dem one verhindert, dass die Entfernungsfunktion beim nächsten Öffnen des Dialogs aufgerufen wird.

Ich hoffe, das könnte hilfreich sein.

Folgen Sie einem vollständigen Beispiel:

var YOUR_MESSAGE_STRING_CONST = "Your confirm message?";
      $('#btnDelete').on('click', function(e){
    		confirmDialog(YOUR_MESSAGE_STRING_CONST, function(){
    			//My code to delete
          console.log("deleted!");
    		});
    	});

        function confirmDialog(message, onConfirm){
    	    var fClose = function(){
    			  modal.modal("hide");
    	    };
    	    var modal = $("#confirmModal");
    	    modal.modal("show");
    	    $("#confirmMessage").empty().append(message);
    	    $("#confirmOk").unbind().one('click', onConfirm).one('click', fClose);
    	    $("#confirmCancel").unbind().one("click", fClose);
        }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>

<!-- Modal dialog -->
<div id="frmTest" tabindex="-1">
    <!-- CUTTED -->
      <div id="step1" class="modal-footer">
    <button type="button" class="glyphicon glyphicon-erase btn btn-default" id="btnDelete"> Delete</button>
  </div>
</div>

  <!-- Modal confirm -->
<div class="modal" id="confirmModal" style="display: none; z-index: 1050;">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-body" id="confirmMessage">
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" id="confirmOk">Ok</button>
            <button type="button" class="btn btn-default" id="confirmCancel">Cancel</button>
          </div>
    </div>
  </div>
</div>

1643019066 62 Bestatigen Sie das Loschen mit dem Modalfeld von Bootstrap 3
Samuel Pinto

Eine einfache Möglichkeit, Modale zu verwenden, ist with eModal!

Ex von github:

  1. Link zu eModal.js <script src="https://rawgit.com/saribe/eModal/master/dist/eModal.min.js"></script>
    var options = {
            message: "The famouse question?",
            title: 'Header title',
            size: 'sm',
            callback: function(result) { result ? doActionTrue(result) :    doActionFalse(); },
            subtitle: 'smaller text header',
            label: "True"   // use the possitive lable as key
            //...
        };
                     
    eModal.confirm(options);
 <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.1/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.1/js/bootstrap.min.js"></script>
<script src="https://rawgit.com/saribe/eModal/master/dist/eModal.min.js"></script>

Tipp: Sie können den Standardnamen des Labels ändern! { Label: ‘Ja’ | ‘Wahr’| ‘OK’ }

1643019066 931 Bestatigen Sie das Loschen mit dem Modalfeld von Bootstrap 3
Nick

$('.launchConfirm').on('click', function (e) {
    $('#confirm')
        .modal({ backdrop: 'static', keyboard: false })
        .one('click', '#delete', function (e) {
            //delete function
        });
});

GEIGE

Für Ihren Knopf:

<button class="btn btn-danger btn-xs launchConfirm" type="button" name="remove_levels"><span class="fa fa-times"></span> delete</button></td>

  • Dies ist nicht im Kontext des angegebenen Codes. Wie wendet OP dies auf seinen Code an?

    – Popnudeln

    25. März 14 um 14:12 Uhr


1643019067 230 Bestatigen Sie das Loschen mit dem Modalfeld von Bootstrap 3
Scharad Shinde

<!-- Button trigger modal -->
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal">
  Launch demo modal
</button>

<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        ...
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Save changes</button>
      </div>
    </div>
  </div>
</div>

https://getbootstrap.com/docs/4.0/components/modal/

  • Dies ist nicht im Kontext des angegebenen Codes. Wie wendet OP dies auf seinen Code an?

    – Popnudeln

    25. März 14 um 14:12 Uhr


Erstellen Sie einen modalen Dialog in HTML mit id=”confirmation” und verwenden Sie die Funktion showConfirmation.

Denken Sie auch daran, die Abbruch- und Erfolgsschaltflächen nach dem Ausblenden des modalen Dialogs zu entbinden (modal.unbind()). Wenn Sie dies nicht tun, erhalten Sie eine doppelte Bindung. Beispiel: Wenn Sie den Dialog einmal öffnen und „Abbrechen“ drücken und dann den Dialog ein zweites Mal öffnen und „Ok“ drücken, erhalten Sie 2 Ausführungen des Erfolgsrückrufs.

showConfirmation = function(title, message, success, cancel) {
    title = title ? title : 'Are you sure?';
    var modal = $("#confirmation");
    modal.find(".modal-title").html(title).end()
        .find(".modal-body").html(message).end()
        .modal({ backdrop: 'static', keyboard: false })
        .on('hidden.bs.modal', function () {
            modal.unbind();
        });
    if (success) {
        modal.one('click', '.modal-footer .btn-primary', success);
    }
    if (cancel) {
        modal.one('click', '.modal-header .close, .modal-footer .btn-default', cancel);
    }
};

// bind confirmation dialog on delete buttons
$(document).on("click", ".delete-event, .delete-all-event", function(event){
    event.preventDefault();
    var self = $(this);
    var url = $(this).data('url');
    var success = function(){
        alert('window.location.href=url');
    }
    var cancel = function(){
        alert('Cancel');
    };
    if (self.data('confirmation')) {
        var title = self.data('confirmation-title') ? self.data('confirmation-title') : undefined;
        var message = self.data('confirmation');
        showConfirmation(title, message, success, cancel);
    } else {
        success();
    }
});

https://jsfiddle.net/yiiBoy/hne9sp6g/

.

616730cookie-checkBestätigen Sie das Löschen mit dem Modalfeld von Bootstrap 3

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy