2016-10-13 9 views
-1

Ich habe ein Ereignis senden, die native POST (Nicht-Ajax) verwenden.Prompt Benutzer zu bestätigen, ohne Ajax einreichen

<form method="post"> 
<button type="submit" value="submit"></button> 
</form> 

Wie kann ich den Benutzer auffordern, wenn der Benutzer auf die Senden-Schaltfläche geklickt hat? wenn der Benutzer auf bestätigen geklickt hat, dann wird es nur weitergehen. Ich weiß, dass ich das mit Ajax machen kann, aber ist es möglich, es auch mit der native post zu tun?

Antwort

1

Sie können eine confirm() zum submit Ereignis des Formulars hinzufügen und dessen Wert auf die anonyme Funktion zurück, wie folgt (mit jQuery):

$('form').on('submit', function() { 
    return confirm('Are you sure?'); 
}); 

+0

kann ich es inline? Da es nur eine Zeile ist –

+1

Nun, Sie * können * Inline, aber das ist sehr schlechte Praxis. (Siehe den Kommentar, den ich gerade zu der anderen Antwort gemacht habe). – BenM

+0

warum schlechte praxis? für meine registerseite habe ich keine js-datei. So könnte es auch nur Linie, es ist nur eine Ein-Zeilen-Bestätigungsmeldung zu veranlassen. –

0

es einfach tun

<form onsubmit="return confirm('Are you sure?')" /> 
+1

Versuchen empfiehlt intrusive Event-Handler zu vermeiden. – BenM

+0

@BenM Ich fand, dass das einfacher ist, warum nicht? –

+0

@MariaJane https://www.w3.org/wiki/The_principles_of_unobtrusive_JavaScript – BenM

0

Obwohl dies nicht der empfohlene Weg, aber es wird tun, was Sie wollen

<form method="post" onsubmit="return confirm('Do you really want to submit');"> 
    <button type="submit" value="submit">Submit</button> 
</form> 
0

function submitForm() { 
 
var r = confirm("Do you want to submit the form?"); 
 
if (r == true) { 
 
    document.getElementById("mainForm").submit(); 
 
} else { 
 
    return false; 
 
} 
 
}
<html> 
 
<body> 
 
<form id="mainForm" method="post" onsubmit="submitForm()"> 
 
    Enter name: <input type="text" name="fname"> 
 
    <input type="submit" value="Submit"> 
 
</form> 
 
</body> 
 
</html>

+0

Bitte empfehlen Sie keine aufdringlichen Event Handler. Außerdem brauchen Sie Ihren 'if() else'-Block nicht, sondern' 'require()' -Funktion einfach zurück. – BenM

+0

Es ist möglich zu zeigen, gibt es eine Möglichkeit, eine Antwort aus dem Bestätigungsdialogfeld zu erhalten, die meisten Fälle müssen Sie etwas tun, wenn Sie absenden oder abbrechen. – mbadeveloper

0

Ja, es ist möglich.

<form id="f" action="demo_form.asp" onsubmit="return false"> 
    Enter name: <input type="text" name="fname"> 
    <input type="submit" onclick="t()" value="Submit"> 
</form> 

<script> 
function t() { 
    if(confirm("Yo")){ 
     var form = document.getElementById("f") 

     form.submit() 

    } 
} 
</script> 
Verwandte Themen