削除の確認に関する問題はすべて正常に機能しますが、確認ポップアップでキャンセルをクリックすると、DBからアイテムが削除されます。何か案は?コード例を示してください。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() !!}
onsubmit
呼び出しにreturnを追加するだけです。そのため、関数が返す値によって、フォームが送信されるかどうかが決まります。
'onsubmit' => 'return ConfirmDelete()'
<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>
フォームを送信するとき、またはレコードを削除するときに、プロンプトボックスの単純なjQueryコードを入力します。
jQuery(document).ready(function($){
$('.deleteGroup').on('submit',function(e){
if(!confirm('Do you want to delete this item?')){
e.preventDefault();
}
});
});
フォームにIDを指定し、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>
私の新しいプロジェクト(Laravel 5.3)では、次のものを使用しています。
{!! 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() !!}
'onsubmit' => 'return confirmDelete()'に言及すると、質問を確認せずにアラートを閉じるときに問題が発生しました。
JavaScript:
function confirmDelete() {
return confirm('Are you sure you want to delete?');
}
関数呼び出しなしで...
'onsubmit' => 'return confirm("are you sure ?")'
例
{!! Form::open(['url'=>'posts/'.$post->id.'/delete','method'=>'DELETE','class'=>'form-horizontal',
'role'=>'form','onsubmit' => 'return confirm("are you sure ?")'])!!}
laravel 5を使用
しばらく経ちましたが、これがIMOの最もスムーズな方法です。
'onsubmit' => 'return confirm("Do you want to delete this user?");'
formタグ内。
私はこれを少し一般化すると思いました:
.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();
}
});
現在起こっている唯一のことは、削除ページへのリダイレクトを遅らせるポップアップが表示されることです。
できることは、リンクを生成するだけで、そのリンクはjsでフォームを生成します。 彼らがここでやっているように(JQueryでのみ)