【问题标题】:My Bootstrap Modal is Taking two clicks to open我的 Bootstrap 模式需要两次点击才能打开
【发布时间】:2019-06-26 22:01:15
【问题描述】:

最近我遇到了这个我根本不知道如何修复的错误。

当我单击“Ver Receita”按钮时,它不会显示任何内容,但如果我再次单击,模式会打开。我认为问题在于模态在外部文件中(由于模态是动态的)。

带有按钮的 HTML

<button type="button" 
        class="btn btn-success text-center mb-1"
        data-toggle="modal" 
        data-target="#receita" 
        onclick="verReceita(<?php echo $registo['id'];?>)">
Ver Receita
</button>

这个按钮正在触发 verReceita.php 内的 div 显示

<div class="modal fade" id="receita">
    <div class="modal-dialog modal-lg">
    <div class="modal-content">
        <div class="modal-header">
        <h1 class="page-header text-center">Detalhes da Receita</h1>
        <button type="button" class="close" data-dismiss="modal">&times;</button>
        </div>

   <div class="modal-body">
      <table class="table table-striped table-bordered border border-dark">

        <tbody>

        </tbody>

      </table>
      <h2>Ingredientes</h2>
      <p>Quero que aqui apareçam os ingredientes associados à receita</p>
      </div>
      <div class="modal-footer">
        <button class="btn btn-success" type="button" class="btn pull-left" data-dismiss="modal">Cancelar</a></button>
      </div>
  </div>
</div>
</div> 

verReceita.php

function verReceita(id){

  var numReceita = id;

  $.post('verReceita.php',{postnumReceita: numReceita},
  function(data){
    $('#result').html(data);
  });
}

我的verReceita.php发出AJAX请求并将参数发送到外部verReceita.php

有什么解决这个双击问题的建议吗?

【问题讨论】:

  • 你的verReceita函数是做什么的?
  • 编辑了问题。
  • 调用函数时是否返回模态内容(包括标记)? IE。 模态框的完整代码是否插入#result - 按下按钮时它不存在?
  • 没错,当按下按钮时,模态不存在。

标签: javascript php html ajax


【解决方案1】:

发生这种情况是因为您的按钮上有一个 onClick 侦听器,以及 Bootstrap 模式触发器。您可以删除 onClick 侦听器,也可以从 onClick 侦听器调用的 verReceita 函数中触发模式。下面的 sn-p 显示了这两个示例:

function verReceita() {
  $('#receita').modal('toggle');
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">

<button type="button" class="btn btn-success text-center mb-1" data-toggle="modal" data-target="#receita"> <!-- onclick="verReceita(<?php echo $registo['id'];?>)"> -->
Ver Receita
</button>

<button type="button" class="btn btn-info text-center mb-1" onclick="verReceita()">
Ver Receita 2
</button>

<div class="modal fade" id="receita">
  <div class="modal-dialog modal-lg">
    <div class="modal-content">
      <div class="modal-header">
        <h1 class="page-header text-center">Detalhes da Receita</h1>
        <button type="button" class="close" data-dismiss="modal">&times;</button>
      </div>

      <div class="modal-body">
        <table class="table table-striped table-bordered border border-dark">

          <tbody>

          </tbody>

        </table>
        <h2>Ingredientes</h2>
        <p>Quero que aqui apareçam os ingredientes associados à receita</p>
      </div>
      <div class="modal-footer">
        <button class="btn btn-success" type="button" class="btn pull-left" data-dismiss="modal">Cancelar</button>
      </div>
    </div>
  </div>
</div>

<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>

【讨论】:

  • 模态在外部php文件中,不在同一个文件中。如果它是相同的,您的代码将是完美的。
猜你喜欢
  • 2016-06-08
  • 1970-01-01
  • 1970-01-01
  • 2016-12-15
  • 1970-01-01
  • 2022-07-19
  • 1970-01-01
  • 2019-12-02
  • 2013-11-16
相关资源
最近更新 更多