So erstellen Sie einen Dialog mit den Optionen „Ok“ und „Abbrechen“.

Lesezeit: 7 Minuten

So erstellen Sie einen Dialog mit den Optionen „Ok und
crchin

Ich werde eine Schaltfläche erstellen, um eine Aktion auszuführen und die Daten in einer Datenbank zu speichern.

Sobald der Benutzer auf die Schaltfläche klickt, möchte ich, dass eine JavaScript-Warnung die Optionen „Ja“ und „Abbrechen“ anbietet. Wenn der Benutzer „Ja“ auswählt, werden die Daten in die Datenbank eingefügt, andernfalls wird keine Aktion ausgeführt.

Wie zeige ich einen solchen Dialog an?

So erstellen Sie einen Dialog mit den Optionen „Ok und
s4y

Sie suchen wahrscheinlich confirm()die eine Eingabeaufforderung anzeigt und zurückkehrt true oder false basierend auf der Entscheidung des Benutzers:

if (confirm('Are you sure you want to save this thing into the database?')) {
  // Save it!
  console.log('Thing was saved to the database.');
} else {
  // Do nothing!
  console.log('Thing was not saved to the database.');
}

  • Bestätigen hat OK- und CANCEL-Tasten. Können diese Tasten auf JA/NEIN gesetzt werden?

    – Owen

    19. April 13 um 0:20 Uhr

  • @ Owen Nr. Die spez sagt, dass Sie nur eine Nachricht übermitteln müssen. Sie können einen Dialog in HTML emulieren (obwohl er nicht wie der eingebaute blockiert). jQuery-Dialog ist ein gutes Beispiel für die Umsetzung dieser Art von Sache.

    – s4y

    19. April ’13 um 17:00 Uhr

  • Hinweis: Sie können a setzen return innerhalb von else und dann müssen Sie nicht Ihren gesamten Code in die Bestätigung einschließen! (von Fall zu Fall behoben)

    – Jacob Raccuia

    02.09.14 um 14:54 Uhr

  • @JacobRaccuia Oder einfach if(!confirm('message')) return;

    – Aaron

    15. Oktober 14 um 21:03 Uhr


  • Beim Benutzen confirm in React musste ich verwenden window.confirm zu vermeiden ein Unexpected use of confirm Error

    – Benutzer-124812948

    17. November 20 um 13:26 Uhr

1643913307 647 So erstellen Sie einen Dialog mit den Optionen „Ok und
Chuck Norris

var answer = window.confirm("Save data?");
if (answer) {
    //some code
}
else {
    //some code
}

Benutzen window.confirm statt Alarm. Dies ist der einfachste Weg, um diese Funktionalität zu erreichen.

  • Du kannst auch mitgehen if(confirm("...")){ stattdessen

    – Nibou

    6. März 14 um 18:06 Uhr

1643913308 156 So erstellen Sie einen Dialog mit den Optionen „Ok und
dana

So machen Sie das mit ‘Inline’-JavaScript:

<form action="http://www.google.com/search">
  <input type="text" name="q" />
  <input type="submit" value="Go"
    onclick="return confirm('Are you sure you want to search Google?')"
  />
</form>

  • Es ist besser, das onsubmit-Ereignis des Formulars zu handhaben: Wenn der Benutzer mit Ihrem Code die Eingabetaste im Text drückt, wird das Formular ohne Aufforderung gesendet!

    – p91paul

    3. Juni 13 um 13:58 Uhr

  • @p91paul – Bei welchem ​​Browser schlägt das für Sie fehl? Ich habe gerade versucht, die Eingabetaste in IE, Chrome und Safari unter Windows zu drücken, und es hat wie erwartet funktioniert. jsfiddle.net/ALjge/1

    – dana

    3. Juni 13 um 16:24 Uhr


  • Nun, ich war mir sicher, was ich sagte, aber ich habe es nicht getestet und ich lag falsch. Verzeihung!

    – p91paul

    3. Juni 13 um 21:41 Uhr

  • Kein Problem 🙂 Es gibt normalerweise mehr als eine Möglichkeit, eine Katze zu häuten. Ich wollte nur bestätigen, dass mein Ansatz funktioniert. Verwendung der <form onsubmit="..."> wie du vorgeschlagen hast funktioniert es auch 🙂

    – dana

    4. Juni 13 um 2:08 Uhr

1643913308 100 So erstellen Sie einen Dialog mit den Optionen „Ok und
rybo111

Vermeiden Sie Inline-JavaScript – Eine Änderung des Verhaltens würde bedeuten, jede Instanz des Codes zu bearbeiten, und das ist nicht schön!

Ein viel saubererer Weg ist die Verwendung eines Datenattributs für das Element, z data-confirm="Your message here". Mein Code unten unterstützt die folgenden Aktionen, einschließlich dynamisch generierter Elemente:

  • a und button Klicks
  • form einreicht
  • option wählt

jQuery:

$(document).on('click', ':not(form)[data-confirm]', function(e){
    if(!confirm($(this).data('confirm'))){
        e.stopImmediatePropagation();
        e.preventDefault();
    }
});

$(document).on('submit', 'form[data-confirm]', function(e){
    if(!confirm($(this).data('confirm'))){
        e.stopImmediatePropagation();
        e.preventDefault();
    }
});

$(document).on('input', 'select', function(e){
    var msg = $(this).children('option:selected').data('confirm');
    if(msg != undefined && !confirm(msg)){
        $(this)[0].selectedIndex = 0;
    }
});

HTML:

<!-- hyperlink example -->
<a href="http://www.example.com" data-confirm="Are you sure you want to load this URL?">Anchor</a>

<!-- button example -->
<button type="button" data-confirm="Are you sure you want to click the button?">Button</button>

<!-- form example -->
<form action="http://www.example.com" data-confirm="Are you sure you want to submit the form?">
    <button type="submit">Submit</button>
</form>

<!-- select option example -->
<select>
    <option>Select an option:</option>
    <option data-confirm="Are you want to select this option?">Here</option>
</select>

JSFiddle-Demo

So erstellen Sie einen Dialog mit den Optionen „Ok und
Keval Bhatt

Sie müssen eine benutzerdefinierte erstellen bestätigenBox. Es ist nicht möglich, die Schaltflächen in dem von der Bestätigungsfunktion angezeigten Dialog zu ändern.

jQuery bestätigenBox


Siehe dieses Beispiel: https://jsfiddle.net/kevalbhatt18/6uauqLn6/

<div id="confirmBox">
    <div class="message"></div>
    <span class="yes">Yes</span>
    <span class="no">No</span>
</div>
function doConfirm(msg, yesFn, noFn)
{
    var confirmBox = $("#confirmBox");
    confirmBox.find(".message").text(msg);
    confirmBox.find(".yes,.no").unbind().click(function()
    {
        confirmBox.hide();
    });
    confirmBox.find(".yes").click(yesFn);
    confirmBox.find(".no").click(noFn);
    confirmBox.show();
}

Nennen Sie es mit Ihrem Code:

doConfirm("Are you sure?", function yes()
{
    form.submit();
}, function no()
{
    // Do nothing
});

Reine JavaScript-Bestätigungsbox


Beispiel: http://jsfiddle.net/kevalbhatt18/qwkzw3rg/127/

<div id="id_confrmdiv">confirmation
    <button id="id_truebtn">Yes</button>
    <button id="id_falsebtn">No</button>
</div>

<button onclick="doSomething()">submit</button>

Skript

<script>
    function doSomething(){
        document.getElementById('id_confrmdiv').style.display="block"; //this is the replace of this line

        document.getElementById('id_truebtn').onclick = function(){
           // Do your delete operation
            alert('true');
        };
        document.getElementById('id_falsebtn').onclick = function(){
             alert('false');
           return false;
        };
    }
</script>

CSS

body { font-family: sans-serif; }

#id_confrmdiv
{
    display: none;
    background-color: #eee;
    border-radius: 5px;
    border: 1px solid #aaa;
    position: fixed;
    width: 300px;
    left: 50%;
    margin-left: -150px;
    padding: 6px 8px 8px;
    box-sizing: border-box;
    text-align: center;
}

#id_confrmdiv button {
    background-color: #ccc;
    display: inline-block;
    border-radius: 3px;
    border: 1px solid #aaa;
    padding: 2px;
    text-align: center;
    width: 80px;
    cursor: pointer;
}

#id_confrmdiv .button:hover
{
    background-color: #ddd;
}

#confirmBox .message
{
    text-align: left;
    margin-bottom: 8px;
}

  • So schön auch.. ziemlich einfach, reines Javascript und nicht so viel CSS. Gefällt mir 😀

    – m3nda

    3. August 15 um 10:56 Uhr

  • Bestätigungsfelder sollten verschwinden, sobald ein Element gedrückt wird. Außerdem sollten Sie Klassen und keine IDs verwenden.

    – rybo111

    27. Dezember 15 um 11:47 Uhr

  • @rogerdpack Ich habe Fiddle aktualisiert, lass es mich wissen, wenn du etwas von meiner Seite benötigst 🙂

    – Keval Bhatt

    20. Oktober 16 um 6:24 Uhr

  • @rogerdpack Wenn Sie die Antwort mögen, können Sie abstimmen: P

    – Keval Bhatt

    21. Oktober 16 um 9:33 Uhr

  • Leute, ihr habt ziemlich gute Beispiele, das ist ein POC. Wenn es Ihnen nicht gefällt, passen Sie es an Ihre Bedürfnisse an und geben Sie dem Autor keine Schuld. Hinweis: Der jquery-Bestätigungsbox-Beispiellink funktioniert nicht mehr. Übrigens ist Pure JS ein großartiges Beispiel.

    – m3nda

    4. August 21 um 8:18 Uhr


1643913308 591 So erstellen Sie einen Dialog mit den Optionen „Ok und
geschw

Dieses Plugin kann Ihnen dabei helfen jquery-confirm Einfach zu verwenden

$.confirm({
    title: 'Confirm!',
    content: 'Simple confirm!',
    confirm: function(){
        alert('Confirmed!');
    },
    cancel: function(){
        alert('Canceled!')
    }
});

  • So schön auch.. ziemlich einfach, reines Javascript und nicht so viel CSS. Gefällt mir 😀

    – m3nda

    3. August 15 um 10:56 Uhr

  • Bestätigungsfelder sollten verschwinden, sobald ein Element gedrückt wird. Außerdem sollten Sie Klassen und keine IDs verwenden.

    – rybo111

    27. Dezember 15 um 11:47 Uhr

  • @rogerdpack Ich habe Fiddle aktualisiert, lass es mich wissen, wenn du etwas von meiner Seite benötigst 🙂

    – Keval Bhatt

    20. Oktober 16 um 6:24 Uhr

  • @rogerdpack Wenn Sie die Antwort mögen, können Sie abstimmen: P

    – Keval Bhatt

    21. Oktober 16 um 9:33 Uhr

  • Leute, ihr habt ziemlich gute Beispiele, das ist ein POC. Wenn es Ihnen nicht gefällt, passen Sie es an Ihre Bedürfnisse an und geben Sie dem Autor keine Schuld. Hinweis: Der jquery-Bestätigungsbox-Beispiellink funktioniert nicht mehr. Übrigens ist Pure JS ein großartiges Beispiel.

    – m3nda

    4. August 21 um 8:18 Uhr


1643913308 352 So erstellen Sie einen Dialog mit den Optionen „Ok und
Edric

Oder einfach:

<a href="https://some-link.com/" onclick="return confirm('Are you sure you want to go to that link?');">click me!</a>

  • Danke schön! Ich hatte Angst, dass ich jQuery in meine einfache CRUD-App einbauen müsste, nur um ein einfaches „Wollen Sie das wirklich löschen?

    – Will Matheson

    6. Juni 19 um 18:41 Uhr

.

758720cookie-checkSo erstellen Sie einen Dialog mit den Optionen „Ok“ und „Abbrechen“.

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

Privacy policy