Problème avec la confirmation de suppression, tout fonctionne bien, mais si vous cliquez sur Annuler dans la fenêtre de confirmation, cela supprimera l'élément de la base de données. Des idées? S'il vous plaît montrer avec exemple de code, je suis nouveau à Laravel.
<script>
function ConfirmDelete()
{
var x = confirm("Are you sure you want to delete?");
if (x)
return true;
else
return false;
}
</script>
{!! Form::open(['method' => 'DELETE', 'route' => ['path_delete_time', $time->id], 'onsubmit' => 'ConfirmDelete()']) !!}
{!! Form::hidden('case_id', $project->id, ['class' => 'form-control']) !!}
{!! Form::button('<i class="glyphicon glyphicon-trash"></i>', array('type' => 'submit', 'class' => 'specialButton')) !!}
{!! Form::close() !!}
Ajoutez simplement return à votre appel onsubmit
. la valeur renvoyée par la fonction détermine donc si le formulaire est soumis ou non.
'onsubmit' => 'return ConfirmDelete()'
Simple mettre du code jQuery pour la boîte d’invite lors de la soumission du formulaire ou de la suppression d’un enregistrement.
jQuery(document).ready(function($){
$('.deleteGroup').on('submit',function(e){
if(!confirm('Do you want to delete this item?')){
e.preventDefault();
}
});
});
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
$(".specialButton").click(function(){
return confirm("Do you want to delete this ?");
});
</script>
Vous pouvez donner un identifiant au formulaire et utiliser jQuery:
{!! Form::open(['method' => 'DELETE', 'route' => ['path_delete_time', $time->id], 'id' => 'FormDeleteTime']) !!}
<script type="text/javascript">
$("#FormDeleteTime").submit(function (event) {
var x = confirm("Are you sure you want to delete?");
if (x) {
return true;
}
else {
event.preventDefault();
return false;
}
});
</script>
Dans mon nouveau projet (Laravel 5.3), j'utilise les éléments suivants:
{!! Form::open(['method' => 'DELETE', 'route' => ['admin.user.delete', $user], 'onsubmit' => 'return confirmDelete()']) !!}
<button type="submit" name="button" class="btn btn-default btn-sm">
<i class="fa fa-trash-o"></i>
</button>
{!! Form::close() !!}
Mentionnez le 'onsubmit' => 'return confirmDelete ()' sinon, je rencontrais des problèmes lorsque je fermais l'alerte sans confirmer la question.
JavaScript:
function confirmDelete() {
return confirm('Are you sure you want to delete?');
}
sans appel de fonction ...
'onsubmit' => 'return confirm("are you sure ?")'
exemple
{!! Form::open(['url'=>'posts/'.$post->id.'/delete','method'=>'DELETE','class'=>'form-horizontal',
'role'=>'form','onsubmit' => 'return confirm("are you sure ?")'])!!}
en utilisant laravel 5
Je sais que cela fait un moment, mais c’est de la manière la plus douce qui soit:
'onsubmit' => 'return confirm("Do you want to delete this user?");'
dans la balise de formulaire.
Je pensais que je généraliserais un peu ceci:
.html
<form method="post" action="..." class="has-confirm" data-message="Delete this Thing?">...</form>
.js
$("form.has-confirm").submit(function (e) {
var $message = $(this).data('message');
if(!confirm($message)){
e.preventDefault();
}
});
La seule chose qui se passe actuellement est que vous obtenez une fenêtre contextuelle qui retarde la redirection vers la page de suppression.
Ce que vous pourriez faire, c'est générer uniquement un lien qui, à son tour, génère un formulaire en js. Comme ce qu'ils font ici (uniquement avec JQuery)