【问题标题】:Modal is not showing and can't close模态未显示且无法关闭
【发布时间】:2021-02-08 20:03:08
【问题描述】:

所以我试图在我拥有的引导模式中添加搜索功能和可滚动表。目前,我已经制作了 1 个模态来使用这些函数,并且效果很好。

但是,当我单击模式的按钮时,似乎没有加载同一页面的其他模式。我没有为这些添加任何额外的代码,也没有分配任何新的类或 ID。

如第一张图片所示,模态不会显示,我无法返回主页。而第二张图片显示了具有工作功能的模态。

这是医疗计划模式的代码

    <div class="modal fade" id="medicPlanModal" tabindex="-1" role="dialog" aria-labelledby="medicPlanModalLabel"
  aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content modal-container">
      <div class="modal-header">
        <h5 class="modal-title" id="medicPlanModalLabel">Add medical plan</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <form action="/postMedicalPlan" method="POST">
        <div class="modal-body">
          <div class="form-group">
            <label for="medicalPlanName" class="col-form-label">Medical Plan:</label>
            <input type="text" class="form-control" name="medicalPlanName"></input>
          </div>
          <div class="form-group">
            <label class="col-form-label">Medical Card:</label>
            <p>Front</p>
            <input type="file" name="medicalCardFront">
          </div>
          <div class="form-group">
            <p>Back</p>
            <input type="file" name="medicalCardBack">
          </div>
          <div>
            <label for="userid" class="col-form-label">Available for:</label>

            <div class="modal-search-group">

              <i class="fa2 fa-search" aria-hidden="true"></i>
              <input type="search" class="form-control rounded " placeholder="Search" aria-label="Search"
                aria-describedby="search-addon" id="search_mp_add" />


            </div>

            <div class="modal-table-fix">

              <table class="modal-table">
                <thread class="thread-inverse">
                  <thead>
                    <tr>
                      <th>Name</th>
                      <th>Email</th>
                      <th>Contact</th>
                      <th>Action</th>
                    </tr>
                  </thead>
                  <tbody id="table_body_mpadd">
                    <% for(var i=0; i < data.employee.length; i++) { %>
                      <tr>
                        <td>
                          <%= data.employee[i].name %>
                        </td>
                        <td>
                          <%= data.employee[i].email %>
                        </td>
                        <td>
                          <%= data.employee[i].contact %>
                        </td>
                        <td><input type="checkbox" class="checkbox" name="userid" value=<%=data.employee[i]._id %>> |
                          ADD
                        </td>
                      </tr>
                      <% } %>
                  </tbody>
                </thread>
              </table>
            </div>
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
            <button type="submit" class="btn btn-primary">Submit</button>
          </div>
      </form>
    </div>
  </div>
</div>

这是诊所列表的代码

<div class="modal fade" id="clinicModal" tabindex="-1" role="dialog" aria-labelledby="clinicModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
  <div class="modal-content">
    <div class="modal-header">
      <h5 class="modal-title" id="clinicModalLabel">Add clinic</h5>
      <button type="button" class="close" data-dismiss="modal" aria-label="Close">
        <span aria-hidden="true">&times;</span>
      </button>
    </div>
    <form action="/postClinic" method="POST">
    <div class="modal-body">
        <div>
          <label for="clinicName" class="col-form-label">Clinic name:</label>
          <input type="text" class="form-control" name="clinicName"></input>
        </div>
        <div>
          <label for="latitude" class="col-form-label">Latitude:</label>
          <input type="text" class="form-control" name="latitude"></input>
        </div>
        <div>
          <label for="longitude" class="col-form-label">Longitude:</label>
          <input type="text" class="form-control" name="longitude"></input>
        </div>
          <div>
            <label for="userid" class="col-form-label">Available for:</label>
            <table>
              <thread class = "thread-inverse">
            <thead>
              <tr>
                <th>Name</th>
                <th>Email</th>
                <th>Contact</th>
                <th>Action</th>
              </tr>
            </thead>
            <tbody>
              <% for(var i=0; i < data.employee.length; i++) { %>
                <tr>
                  <td><%= data.employee[i].name %></td>
                  <td><%= data.employee[i].email %></td>
                  <td><%= data.employee[i].contact %></td>
                  <td><input type="checkbox" class="checkbox" name="userid" value=<%= data.employee[i]._id %>> | ADD </td>
                </tr>
             <% } %>
            </tbody>
          </thread>
          </table>
          </div>
      </div>
        <div class="modal-footer">
      <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
      <button type="submit" class="btn btn-primary">Submit</button>
        </div>  
      </form>
  </div>
</div>

js代码

   function setSearch(inputEle, rowEle){
     $(inputEle).keyup(function(){  
          search_table(rowEle, $(this).val());  
     }); 
  } 
  
  function search_table(rowEle, value){  
      $(rowEle).each(function(){  
           var found = 'false';  
           $(this).each(function(){  
               if($(this).text().toLowerCase().indexOf(value.toLowerCase()) >= 0)  
               {  
                         found = 'true';  
               }  
           });  
           if(found == 'true')  
           {  
                $(this).show();  
           }  
           else  
           {  
                $(this).hide();  
           }  
      });  
   }  
   setSearch('#search_home', '#table_body_home tr');
   setSearch('#search_p', '#table_body_p tr');
   setSearch('#search_pi', '#table_body_pi tr');
   setSearch('#search_atnd', '#table_body_atnd tr');
   setSearch('#search_benefit', '#table_body_benefit tr');
   setSearch('#search_cal_leave', '#table_body_cal_leave tr');
   setSearch('#search_cal_lr', '#table_body_cal_lr tr');
   setSearch('#search_cal_act', '#table_body_cal_act tr');
   setSearch('#search_contract', '#table_body_contract tr');
   setSearch('#search_parties', '#table_body_parties tr');
   setSearch('#search_rewards', '#table_body_rewards tr');
   setSearch('#search_rewards_add', '#table_body_re_add tr');
   setSearch('#search_medplan', '#table_body_medplan tr');
   setSearch('#search_medrec', '#table_body_medrec tr');
   setSearch('#search_clist', '#table_body_clist tr');
   setSearch('#search_insurance', '#table_body_ins tr');
   setSearch('#search_mp_add', '#table_body_mpadd tr');
   setSearch('#search_clist_add', '#table_body_clistadd tr');

css

    .modal-container {
  width: 120%;
}

.modal-table-fix {
  overflow-y: auto;
  overflow-x: hidden;
  height: 160px;
}
.modal-table-fix thead th {
  position: sticky;
  top: 0;
  background: rgb(255, 255, 255);
  padding: 0 0 10px 1px;
}

/* Borders (if you need them) */
.tableFixHead,
.tableFixHead td {
  box-shadow: inset 1px -1px rgb(255, 255, 255);
}
.tableFixHead th {
  box-shadow: inset 1px 1px rgb(255, 255, 255), 0 1px rgb(255, 255, 255);
}

.modal-table tbody td {
  padding: 5px;
}

.modal-search-group {
  width: 40%;
  display: -ms-flexbox;
  display: flex;
  margin: 0px 0 10px 0;
}

.fa2 {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  color: black;
  padding: 10px;
  text-align: center;
}

【问题讨论】:

  • 尝试使用 $('#modal_id').modal({show:false})
  • 在js文件里面?
  • 是的,带有 onclick 事件

标签: javascript html jquery css ejs


【解决方案1】:

作为https://stackoverflow.com/users/13926890/mohit-jain 提到您需要在 js 文件中执行此操作,每当您调用模态以关闭或打开它时。

  function search_table(rowEle, value){  
      $(rowEle).each(function(){  
           var found = 'false';  
           $(this).each(function(){  
               if($(this).text().toLowerCase().indexOf(value.toLowerCase()) >= 0)  
               {  
                         found = 'true';  
               }  
           });  
           if(found == 'true')  
           {  
                $('#yourIdHere').modal({show:true}); 
                //in case it doesn't work, use this   
                // $('#yourIdHere').modal('show');

           }  
           else  
           {  
                $('#yourIdHere').modal({show:false});
                 //in case it doesn't work, use this  
                //$('#yourIdHere').modal('hide');
           }  
      });  
   }  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-21
    • 2012-11-25
    • 2021-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    相关资源
    最近更新 更多