2011-01-16 11 views
4

Ich habe ein Formular mit 2 Senden-Schaltflächen.jQuery - Fragen Sie den Benutzer vor dem Absenden eines Formulars

<input type='submit' name='submit-form' value='Send' /> 
<input type='submit' class='delete' name='delete' value='Delete' /> 

Und ich möchte den Benutzer fragen, ob er wirklich den Artikel löschen möchte. Ich weiß, es könnte getan werden, indem Sie den Löschen-Button einen Link machen, aber ich muss es wirklich so machen.

Danke für Ihre Zeit, Mike.

Antwort

5

sollte folgendermaßen aussehen:

$('input.delete').bind('click', function() { 
    if(!confirm('are you sure')) 
     return false; 
}); 

von false von einem Event-Handler zurückkehrt, wird es eine event.preventDefault und event.stopPropagation auslösen.

In Bezug auf Ihren Kommentar, würde ich diesen Weg geht verschiedene Saiten für verschiedene Eingänge haben:

$('input').bind('click', function(e) { 
    var msg; 

    switch(e.className) { 
     case 'foobar': msg = 'Foo foo foo!?'; break; 
     case 'yay': msg = 'yay yay yay!?'; break; 
     // etc 
     default: msg = 'are you sure?'; 
    } 

    if(!confirm(msg)) 
     return false; 
}); 

Demo: seine http://www.jsfiddle.net/ks9Ak/

+0

würde nicht nur Event.preventDefault mit sicherer () um das Ereignis aufgehen zu lassen? – DarkThrone

+0

Das ist es, danke. Nur noch eine Frage, gibt es eine Möglichkeit, die msg für den Benutzer als Parameter einer Funktion zu übergeben, falls ich anderen Text für eine andere Schaltfläche verwenden möchte? – Mike

+0

@DarkThrone: Ich würde nicht wissen, warum das "sicherer" wäre – jAndy

1
$('input.delete').click(function(e){ 
    e.preventDefault(); 
    var action = confirm('do you want to delete the item?'); 
    if(action){ 
     //delete the item the way you want 
    } 
}); 
Verwandte Themen