jquery - 模态仅适用于第一篇文章
问题描述
我正在创建一个编辑帖子按钮,用户单击该按钮并弹出一个带有表单的模式来编辑表单。出于某种原因,只有第一个帖子上的按钮可以工作并打开模式。不知道我做错了什么,任何帮助将不胜感激。在此先感谢。模态中的帖子形式用于测试。
主页.php:
@if($posts)
@foreach($posts as $post)
<div class="card" style="margin-top: 20px">
<div class="card-header">
<div>{{$post->user->name}}</div>
<div id="post-date">{{$post->created_at->diffForHumans()}}</div>
</div>
<div class="card-body">
<div>{{$post->body}}</div>
@if(!empty($post->photo_id ))
<img class="post-image"src="/images/{{ $post->photo->file }}" alt="">
@else
<img class="post-image" src="http://placehold.it/400x400" alt="">
@endif
<div class="card-footer">
<div>
<button class="btn-primary btn-sm" id="edit-post-btn">Edit Post</button>
<!-- The Modal -->
<div id="myModal" class="modal">
<!-- Modal content -->
<div class="modal-content">
<span class="close">×</span>
<form method="POST" enctype="multipart/form-data" action="{{ route('makePost') }}">
@csrf
<div class="form-group row">
<label for="body" class="col-md-4 col-form-label text-md-right">{{ __('Body') }}</label>
<div class="col-md-6">
<input id="body" type="text" class="form-control" name="body" value="{{ old('body') }}">
</div>
</div>
<div class="form-group row">
<label for="photo" class="col-md-4 col-form-label text-md-right">{{ __('Photo') }}</label>
<div class="col-md-6">
<input id="photo" type="file" class="form-control" name="photo_id" value="{{ old('photo') }}">
</div>
</div>
<div class="form-group row mb-0">
<div class="col-md-6 offset-md-4">
<button type="submit" class="btn btn-primary">
{{ __('Submit Post') }}
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
@endforeach
@endif
JS文件:
// Get the modal
var modal = document.getElementById('myModal');
// Get the button that opens the modal
var btn = document.getElementById("edit-post-btn");
// Get the <span> element that closes the modal
var span = document.getElementsByClassName("close")[0];
// When the user clicks on the button, open the modal
btn.onclick = function() {
modal.style.display = "block";
}
// When the user clicks on <span> (x), close the modal
span.onclick = function() {
modal.style.display = "none";
}
// When the user clicks anywhere outside of the modal, close it
window.onclick = function(event) {
if (event.target === modal) {
modal.style.display = "none";
}
}
解决方案
推荐阅读
- javascript - 在 Angular 9 中包含和调用自定义 JS 脚本
- javascript - 下载文件时 ASP.NET Core 繁忙指示器
- html - 盒子模型上的 CSS 练习 - 无法解决
- sql - 运算符不存在:字符变化 = 字符变化 []
- django - Django:清洁方法不拾取提交的文件
- laravel - 如何在 macOS 上的 nginx 上服务 Laravel 项目?
- ios - 如何将一个 VC 的文本字段数据保存到另一个 VC 的表格视图中?
- telerik - Telerik 报告报告中的多个 y 轴
- node.js - 在多个文件中使用 supertest 进行 Nodejs API 测试的正确方法?
- angular - Angular 9 - 在生产模式下构建打印错误消息以记录