我在一个 HTML 模板上有两个模式。当我实现第二个模式时,第一个模式与其操作相关联,我希望它们是分开的。当我单击按钮添加时间时,我希望仅显示时间表单模式。当我单击某个用户时,我希望他们的一些个人资料详细信息显示在页面右侧。截至目前,当我单击“添加时间”按钮时,它们现在堆叠在一起。
这是问题的图片:
你可以看到前面的模态覆盖了后面的表单,我希望这些是单独的动作。当我单击按钮添加时间时,仅应显示此模式形式:
这是我的按钮 HTML:
<button class="btn btn-danger add-btn mb-0" data-bs-toggle="modal" data-bs-target="#timetrackModal"><i class="ri-add-line align-bottom me-1"></i> Add Time Entry</button>
<button type="button" class="btn py-0 fs-16 text-body" id="settingDropdown" data-bs-toggle="dropdown">
<i class="ri-stack-line"></i>
</button>
<a href="#userProfileCanvasExample{{tech.pk}}" class="avatar-group-item" data-bs-toggle="offcanvas" data-bs-trigger="hover"
data-bs-target="#userProfileCanvasExample{{tech.pk}}" aria-controls="userProfileCanvasExample{{tech.pk}}" title={{tech.username}}>
<div class="rounded-circle avatar-xs">
<div class="avatar-title rounded-circle bg-info">
{{tech.username|first}}
</div>
</div>
</a>
这是模态 HTML:
<div class="modal fade zoomIn" id="timetrackModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content border-0">
<div class="modal-header p-3 bg-soft-info">
<h5 class="modal-title" id="exampleModalLabel"> Add Ticket Labor</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close" id="close-modal"></button>
</div>
<form action="{% url 'apps:tickets.time_entry' tickets.pk%}" method="POST" enctype="multipart/form-data">
{% csrf_token %}
{{ form.media }}
{{ form.as_p }}
<div class="modal-body">
<div class="row g-3">
<div class="col-lg-12">
<div id="modal-id">
</div>
</div>
<div class="col-lg-12">
<div>
<label for="tasksTitle-field" class="form-label">Add Time Entry for Ticket</label>
<input type="text" name="ticket" class="form-control" placeholder="Title" value="{{tickets.pk|add:1000}} | {{tickets.name}}" readonly />
</div>
</div>
<div class="col-lg-4">
<div>
<label for="choices-text-input" class="form-label">Hours</label>
<select class="form-select" data-choices data-choices-search-false
id="choices-lead-input" name="hours" id="hours" value="0" >
<option value="0">0h</option>
{% for i in "x"|rjust:"10" %}
<option value="{{forloop.counter}}">{{forloop.counter}} h</option>
{% endfor %}
</select>
</div>
</div>
<div class="col-lg-4">
<div>
<label for="choices-text-input" class="form-label">Minutes</label>
<select class="form-select" data-choices data-choices-search-false
id="choices-lead-input" name="minutes" id="minutes" value="0" >
<option value="0">0m</option>
{% for i in "x"|rjust:"59" %}
<option value="{{forloop.counter}}">{{forloop.counter}} m</option>
{% endfor %}
</select>
</div>
</div>
<div class="col-lg-4">
<div>
<label for="choices-text-input" class="form-label">Technician</label>
<select class="form-select" data-choices data-choices-search-false
id="choices-lead-input" name="created_by" id="created_by" >
{% for tech in technicians %}
<option value="{{tech.technician_id}}" >{{tech.username}}</option>
{% endfor %}
</select>
</div>
</div>
<div class="col-lg-8">
<label for="date-field" class="form-label">Working Date</label>
<input type="text" name="created_at" class="form-control"
data-provider="flatpickr" data-date-format="Y-m-d" value="{{ today|date:"Y-m-d" }}"
placeholder="Choose Work Date" required />
</div>
<div class="col-lg-8">
<label for="date-field" class="form-label">Log Comment </label>
<textarea class="form-control bg-light border-light" id="bodyTextarea1" rows="3" placeholder="Enter comment" name="comment"></textarea>
</div>
<div class="modal-footer">
<div class="hstack gap-2 justify-content-end">
<button type="button" class="btn btn-light" data-bs-dismiss="modal">Close</button>
<button type="submit" class="btn btn-success" id="add-btn">Add Time</button>
</div>
</div>
</form>
</div>
</div>
</div>
{% for tech in tickets.assignment.all %}
<div class="offcanvas offcanvas-end border-0" tabindex="-1" id="userProfileCanvasExample{{tech.pk}}">
<!--end offcanvas-header-->
<div class="offcanvas-body profile-offcanvas p-0">
<div class="team-cover">
<img src="{% static 'images/small/img-9.jpg'%}" alt="" class="img-fluid" />
</div>
<div class="p-1 pb-4 pt-0">
<div class="team-settings">
<div class="row g-0">
<div class="col">
<div class="btn nav-btn">
<button type="button" class="btn-close btn-close-white" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
</div>
<div class="col-auto">
<div class="user-chat-nav d-flex">
<div class="dropdown">
<a class="btn nav-btn" href="javascript:void(0);" data-bs-toggle="dropdown" aria-expanded="false">
<i class="ri-more-2-fill"></i>
</a>
<ul class="dropdown-menu dropdown-menu-end">
<li><a class="dropdown-item" href="javascript:void(0);"><i class="ri-inbox-archive-line align-bottom text-muted me-2"></i>Archive</a></li>
<li><a class="dropdown-item" href="javascript:void(0);"><i class="ri-mic-off-line align-bottom text-muted me-2"></i>Muted</a></li>
<li><a class="dropdown-item" href="javascript:void(0);"><i class="ri-delete-bin-5-line align-bottom text-muted me-2"></i>Delete</a></li>
</ul>
</div>
</div>
</div>
</div>
</div><!--end col-->
</div>
<div class="p-3 text-center">
{% if tech.picture %}
<img src="{% static 'images/users/avatar-2.jpg'%}" alt="" class="avatar-lg img-thumbnail rounded-circle mx-auto profile-img">
{% else %}
<div class="avatar-lg img-thumbnail rounded-circle mx-auto profile-img">
{{tech.username|make_list|first}}
</div>
{% endif %}
<div class="mt-3">
<h5 class="fs-16 mb-1"><a href="javascript:void(0);" class="link-primary username">{{tech.username}}</a></h5>
<p class="text-muted"><i class="ri-checkbox-blank-circle-fill me-1 align-bottom text-success"></i>Online</p>
</div>
<div class="d-flex gap-2 justify-content-center">
<button type="button" class="btn avatar-xs p-0" data-bs-toggle="tooltip" data-bs-placement="top" title="Message">
<span class="avatar-title rounded bg-light text-body">
<i class="ri-question-answer-line"></i>
</span>
</button>
<button type="button" class="btn avatar-xs p-0" data-bs-toggle="tooltip" data-bs-placement="top" title="Favourite">
<span class="avatar-title rounded bg-light text-body">
<i class="ri-star-line"></i>
</span>
</button>
<button type="button" class="btn avatar-xs p-0" data-bs-toggle="tooltip" data-bs-placement="top" title="Phone">
<span class="avatar-title rounded bg-light text-body">
<i class="ri-phone-line"></i>
</span>
</button>
<div class="dropdown">
<button class="btn avatar-xs p-0" type="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="avatar-title bg-light text-body rounded">
<i class="ri-more-fill"></i>
</span>
</button>
<ul class="dropdown-menu dropdown-menu-end">
<li><a class="dropdown-item" href="javascript:void(0);"><i class="ri-inbox-archive-line align-bottom text-muted me-2"></i>Archive</a></li>
<li><a class="dropdown-item" href="javascript:void(0);"><i class="ri-mic-off-line align-bottom text-muted me-2"></i>Muted</a></li>
<li><a class="dropdown-item" href="javascript:void(0);"><i class="ri-delete-bin-5-line align-bottom text-muted me-2"></i>Delete</a></li>
</ul>
</div>
</div>
</div>
<div class="border-top border-top-dashed p-3">
<h5 class="fs-15 mb-3">Personal Details</h5>
<div class="mb-3">
<p class="text-muted text-uppercase fw-medium fs-12 mb-1">Number</p>
<h6>{{tech.mobile}}</h6>
</div>
<div class="mb-3">
<p class="text-muted text-uppercase fw-medium fs-12 mb-1">Email</p>
<h6>{{tech.email}}</h6>
</div>
<div>
<p class="text-muted text-uppercase fw-medium fs-12 mb-1">Location</p>
<h6 class="mb-0">{{tech.city}}, {{tech.state}}</h6>
</div>
</div>
<div class="border-top border-top-dashed p-3">
<h5 class="fs-15 mb-3">Attached Files</h5>
<div class="vstack gap-2">
<div class="border rounded border-dashed p-2">
<div class="d-flex align-items-center">
<div class="flex-shrink-0 me-3">
<div class="avatar-xs">
<div class="avatar-title bg-light text-secondary rounded fs-20">
<i class="ri-folder-zip-line"></i>
</div>
</div>
</div>
<div class="flex-grow-1 overflow-hidden">
<h5 class="fs-13 mb-1"><a href="#" class="text-body text-truncate d-block">App pages.zip</a></h5>
<div class="text-muted">2.2MB</div>
</div>
<div class="flex-shrink-0 ms-2">
<div class="d-flex gap-1">
<button type="button" class="btn btn-icon text-muted btn-sm fs-18"><i class="ri-download-2-line"></i></button>
<div class="dropdown">
<button class="btn btn-icon text-muted btn-sm fs-18 dropdown" type="button" data-bs-toggle="dropdown" aria-expanded="false">
<i class="ri-more-fill"></i>
</button>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#"><i class="ri-share-line align-bottom me-2 text-muted"></i> Share</a></li>
<li><a class="dropdown-item" href="#"><i class="ri-bookmark-line align-bottom me-2 text-muted"></i> Bookmark</a></li>
<li><a class="dropdown-item" href="#"><i class="ri-delete-bin-line align-bottom me-2 text-muted"></i> Delete</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="border rounded border-dashed p-2">
<div class="d-flex align-items-center">
<div class="flex-shrink-0 me-3">
<div class="avatar-xs">
<div class="avatar-title bg-light text-secondary rounded fs-20">
<i class="ri-file-ppt-2-line"></i>
</div>
</div>
</div>
<div class="flex-grow-1 overflow-hidden">
<h5 class="fs-13 mb-1"><a href="#" class="text-body text-truncate d-block">Project Rocket admin.ppt</a></h5>
<div class="text-muted">2.4MB</div>
</div>
<div class="flex-shrink-0 ms-2">
<div class="d-flex gap-1">
<button type="button" class="btn btn-icon text-muted btn-sm fs-18"><i class="ri-download-2-line"></i></button>
<div class="dropdown">
<button class="btn btn-icon text-muted btn-sm fs-18 dropdown" type="button" data-bs-toggle="dropdown" aria-expanded="false">
<i class="ri-more-fill"></i>
</button>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#"><i class="ri-share-line align-bottom me-2 text-muted"></i> Share</a></li>
<li><a class="dropdown-item" href="#"><i class="ri-bookmark-line align-bottom me-2 text-muted"></i> Bookmark</a></li>
<li><a class="dropdown-item" href="#"><i class="ri-delete-bin-line align-bottom me-2 text-muted"></i> Delete</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="border rounded border-dashed p-2">
<div class="d-flex align-items-center">
<div class="flex-shrink-0 me-3">
<div class="avatar-xs">
<div class="avatar-title bg-light text-secondary rounded fs-20">
<i class="ri-folder-zip-line"></i>
</div>
</div>
</div>
<div class="flex-grow-1 overflow-hidden">
<h5 class="fs-13 mb-1"><a href="#" class="text-body text-truncate d-block">Images.zip</a></h5>
<div class="text-muted">1.2MB</div>
</div>
<div class="flex-shrink-0 ms-2">
<div class="d-flex gap-1">
<button type="button" class="btn btn-icon text-muted btn-sm fs-18"><i class="ri-download-2-line"></i></button>
<div class="dropdown">
<button class="btn btn-icon text-muted btn-sm fs-18 dropdown" type="button" data-bs-toggle="dropdown" aria-expanded="false">
<i class="ri-more-fill"></i>
</button>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#"><i class="ri-share-line align-bottom me-2 text-muted"></i> Share</a></li>
<li><a class="dropdown-item" href="#"><i class="ri-bookmark-line align-bottom me-2 text-muted"></i> Bookmark</a></li>
<li><a class="dropdown-item" href="#"><i class="ri-delete-bin-line align-bottom me-2 text-muted"></i> Delete</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="border rounded border-dashed p-2">
<div class="d-flex align-items-center">
<div class="flex-shrink-0 me-3">
<div class="avatar-xs">
<div class="avatar-title bg-light text-secondary rounded fs-20">
<i class="ri-image-2-line"></i>
</div>
</div>
</div>
<div class="flex-grow-1 overflow-hidden">
<h5 class="fs-13 mb-1"><a href="#" class="text-body text-truncate d-block">bg-pattern.png</a></h5>
<div class="text-muted">1.1MB</div>
</div>
<div class="flex-shrink-0 ms-2">
<div class="d-flex gap-1">
<button type="button" class="btn btn-icon text-muted btn-sm fs-18"><i class="ri-download-2-line"></i></button>
<div class="dropdown">
<button class="btn btn-icon text-muted btn-sm fs-18 dropdown" type="button" data-bs-toggle="dropdown" aria-expanded="false">
<i class="ri-more-fill"></i>
</button>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#"><i class="ri-share-line align-bottom me-2 text-muted"></i> Share</a></li>
<li><a class="dropdown-item" href="#"><i class="ri-bookmark-line align-bottom me-2 text-muted"></i> Bookmark</a></li>
<li><a class="dropdown-item" href="#"><i class="ri-delete-bin-line align-bottom me-2 text-muted"></i> Delete</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="text-center mt-2">
<button type="button" class="btn btn-danger">Load more <i class="ri-arrow-right-fill align-bottom ms-1"></i></button>
</div>
</div>
</div>
</div><!--end offcanvas-body-->
</div><!--end offcanvas-->
{% endfor %}
当我添加 timetrackModal 时,这种情况就开始发生。当我删除它时, UserProfileCanvas 模式工作正常。我尝试过使用类、id 标签,但被难住了。独立工作,但是当两者都构建时,它会导致分层模态
注意:HTML 使用 Django 作为 Web 框架返回数据