2016-05-25 15 views
-1

Ich werde das so klar wie möglich machen.Auslöser Formular über jQuery Alarmbestätigung senden

Grundsätzlich erlaubt mein Formular, Spieler aus einer Auswahlbox zu löschen.

Wenn der Benutzer 'Löschen' drückt, wird ein Bestätigungsfenster angezeigt, in dem der Benutzer informiert wird, dass er diese Daten nicht zurückerhalten kann, wenn er fortfährt. Das beabsichtigte Verhalten ist, dass, wenn der Benutzer "OK" drückt, das Löschskript ausgeführt wird und den Player löscht. Wenn Sie das Bestätigungsfeld entfernen und das Standardverhalten der Übergabeschaltfläche zulassen, funktioniert es wie gewünscht. Ich wäre nur professioneller, wenn ich diesen Zwischenschritt hinzufügen könnte.

Hier ist mein relevanter HTML-Code:

<form id="player-list" action="edit-player.php?playerid=22" method="post"> 

       <div id="player-box" class="row"> 
        <div class="small-12 medium-offset-4 medium-4 columns"> 
         <label>Team 
          <select id="all-players" name="team-division"> 
          <?php 
           $SQL = "SELECT 
              ID, 
              firstName, 
              lastName 
             FROM 
              players"; 
           $playerResult = mysqli_query($link, $SQL); 
           $counter = 1; 

           while($row = mysqli_fetch_array($playerResult)) { 
            echo '<option value="player-' . $row['ID'] . '">' . substr($row['firstName'], 0, 1) . " " . $row['lastName'] . '</option>'; 
           } 

          ?> 



          </select> 
          <br /> 
         </label> 
        </div> 
       </div> 

       <div class="row"> 
        <div class="small-12 medium-2 medium-offset-4 columns "> 
         <a id="player-selection" class="button expanded radius success">Submit</a> 
        </div> 
        <div class="small-12 medium-2 columns end"> 
         <input type="submit" id="player-deletion" class="button expanded radius alert" name="delete-player" value="Delete" /> 
        </div> 
       </div> 
      </form> 

Der Eingang # Spieler-Löschen-Tag ist das, was hier wichtig ist.

Relevante jQuery-Code:

$("#player-deletion").on('click', function(e) { 
     e.preventDefault(); 

     var x; 
     if (confirm("This record will be permanentely deleted. Is that OK?") == true) { 
      $(e).trigger('submit'); 
     } 
    }); 

Dieser Code funktioniert nicht. Ich weiß, dass ich die Standardaktion verhindern muss, aber nachdem der Benutzer auf "OK" geklickt hat, möchte ich die Übermittlungsfunktion von der Bestätigungsschaltfläche wiederholen.

Ist das möglich?

Jede Hilfe wäre willkommen.

Danke.

+0

* "Ich möchte die Funktion aus der Bestätigungstaste einreichen Wiederzündungs." Warum? es hätte ausgelöst, wenn Sie die Standardaktion trotzdem nicht verhindert hätten. –

Antwort

0

Sie können einfach zurückkehren, was auch immer confirm zurückgibt. return false wäre das gleiche wie das Aufrufen von e.preventDefault() und e.stopPropagation(). Durch das Stoppen der Ereignisübertragung wird die Übertragung abgebrochen.

$("#player-deletion").click(function(e) { 
    return confirm("This record will be permanentely deleted. Is that OK?"); 
}); 

JSFiddle Example

+0

Entschuldigung, es hat eine Weile gedauert, bis ich zu Ihnen zurückkam. Beschäftigt mit Arbeit und anderen Dingen. Ihre Lösung funktioniert gut. Vielen Dank. – Chosen1

0

Sie müssen nur false zurückgeben, wenn der Benutzer im Bestätigungsdialogfeld Abbrechen drückt. Andernfalls wird der Standardablauf durchlaufen.

$("#player-deletion").on('click', function(e) { 
    if (!confirm("This record will be permanentely deleted. Is that OK?")) { 
     return false; 
    } 
}); 
0

Ändern Sie die if-Anweisung zu

if (confirm("This record will be permanentely deleted. Is that OK?") == true) { 
    //submit regardless 
} else { 
    e.preventDefault();//do something other here 
}