laravel5.8 如何为带有纯 javascript 的每个项目打开模态 window
laravel5.8 How to open a modal window for each item with pure javascript
我想为每个项目打开一个删除确认模式 window。
我正在使用 laravel 5.8 和纯 javascript.
我成功打开了一个模态,但是我需要动态地一个一个地删除一个项目。
例如
有3类。
1. Vue je
2.React js
3.Angular js
我想一一删除。
所以模态需要获取每个 ID。
这是我的代码。
index.html
<div class="content">
<table class="table">
<thead>
<th>Category</th>
</thead>
<tbody>
@foreach($categories as $category)
<tr>
<td>
{{ $category->name }} <br>
</td>
<td>
<a href="{{ route('categories.edit', $category->id) }}"><button btn="" class="edit-btn">Edit</button></a><br>
</td>
<td>
<button class="modalBtn" >Delete</button><br>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
class="modalBtn" 触发模态。
app.js
const openModal = document.querySelectorAll('.modalBtn');
const closeModal = document.getElementsByClassName('closeBtn')[0];
const modal = document.getElementById('simpleModal');
openModal.forEach(function(e) {
e.addEventListener('click', open);
})
closeModal.addEventListener('click', close);
window.addEventListener('click', closeOutside);
function open() {
modal.style.display = 'block';
}
function close() {
modal.style.display= "none";
}
function closeOutside(e) {
if(e.target == modal){
modal.style.display = "none";
}
}
谢谢。
你可以参考一下
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-whatever="@mdo">Open modal for @mdo</button>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-whatever="@fat">Open modal for @fat</button>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-whatever="@getbootstrap">Open modal for @getbootstrap</button>
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">New message</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<form>
<div class="form-group">
<label for="recipient-name" class="col-form-label">Recipient:</label>
<input type="text" class="form-control" id="recipient-name">
</div>
<div class="form-group">
<label for="message-text" class="col-form-label">Message:</label>
<textarea class="form-control" id="message-text"></textarea>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Send message</button>
</div>
</div>
</div>
</div>
$('#exampleModal').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget) // Button that triggered the modal
var recipient = button.data('whatever') // Extract info from data-* attributes
// If necessary, you could initiate an AJAX request here (and then do the updating in a callback).
// Update the modal's content. We'll use jQuery here, but you could use a data binding library or other methods instead.
var modal = $(this)
modal.find('.modal-title').text('New message to ' + recipient)
modal.find('.modal-body input').val(recipient)
})
我想为每个项目打开一个删除确认模式 window。 我正在使用 laravel 5.8 和纯 javascript.
我成功打开了一个模态,但是我需要动态地一个一个地删除一个项目。
例如 有3类。 1. Vue je 2.React js 3.Angular js
我想一一删除。 所以模态需要获取每个 ID。
这是我的代码。 index.html
<div class="content">
<table class="table">
<thead>
<th>Category</th>
</thead>
<tbody>
@foreach($categories as $category)
<tr>
<td>
{{ $category->name }} <br>
</td>
<td>
<a href="{{ route('categories.edit', $category->id) }}"><button btn="" class="edit-btn">Edit</button></a><br>
</td>
<td>
<button class="modalBtn" >Delete</button><br>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
class="modalBtn" 触发模态。
app.js
const openModal = document.querySelectorAll('.modalBtn');
const closeModal = document.getElementsByClassName('closeBtn')[0];
const modal = document.getElementById('simpleModal');
openModal.forEach(function(e) {
e.addEventListener('click', open);
})
closeModal.addEventListener('click', close);
window.addEventListener('click', closeOutside);
function open() {
modal.style.display = 'block';
}
function close() {
modal.style.display= "none";
}
function closeOutside(e) {
if(e.target == modal){
modal.style.display = "none";
}
}
谢谢。
你可以参考一下
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-whatever="@mdo">Open modal for @mdo</button>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-whatever="@fat">Open modal for @fat</button>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-whatever="@getbootstrap">Open modal for @getbootstrap</button>
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">New message</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<form>
<div class="form-group">
<label for="recipient-name" class="col-form-label">Recipient:</label>
<input type="text" class="form-control" id="recipient-name">
</div>
<div class="form-group">
<label for="message-text" class="col-form-label">Message:</label>
<textarea class="form-control" id="message-text"></textarea>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Send message</button>
</div>
</div>
</div>
</div>
$('#exampleModal').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget) // Button that triggered the modal
var recipient = button.data('whatever') // Extract info from data-* attributes
// If necessary, you could initiate an AJAX request here (and then do the updating in a callback).
// Update the modal's content. We'll use jQuery here, but you could use a data binding library or other methods instead.
var modal = $(this)
modal.find('.modal-title').text('New message to ' + recipient)
modal.find('.modal-body input').val(recipient)
})