J'ai un problème avec jQuery. Lorsque je clique sur le lien, le modal s'ouvre et je veux passer la valeur de data-href au bouton à l'intérieur du modal.

Rien ne se passe lorsque je clique sur le bouton. Pourrais-tu m'aider s'il te plaît?

Lien

<a href="#" data-href="stackoverflow.com" data-toggle="modal" data-target="#openModal">Link</a>

Modale

<div class="modal fade" id="openModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
            <div class="modal-dialog">
                <div class="modal-content">         
                    <div class="modal-footer">
                        <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
                        <button class="btn btn-danger btn-ok" href="">Go</button>
                    </div>
                </div>
            </div>
        </div>

JQuery

    <script>
        $('#openModal').on('show.bs.modal', function(e) {
            $(this).find('.btn-ok').attr('href', $(e.relatedTarget).data('href'));
            $('.debug-url').html('Delete URL: <strong>' + $(this).find('.btn-ok').attr('href') + '</strong>');
        });
    </script>

JQuery / Popper / JS

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.2/umd/popper.min.js"></script> 
<script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js"></script>

Erreur

Uncaught ReferenceError: $ is not defined
0
Giulia 15 nov. 2017 à 14:37

4 réponses

Meilleure réponse

J'ai mis le fichier jQuery sur la tête au lieu du bas du corps et cela fonctionne. Je vous remercie.

0
Giulia 15 nov. 2017 à 12:29

Essayez d'utiliser shown au lieu de show

$('#openModal').on('shown.bs.modal', function(e) {

1
kapuetze 15 nov. 2017 à 11:50

Essaye ça:

$('#openModal').on('show.bs.modal', function(e) {
    var data_href = $(e.relatedTarget).attr('data-href');
    console.log('data_href: ' + data_href);

    $(this).find('.btn-ok').attr('href', data_href);
    $('.debug-url').html('Delete URL: <strong>' + $(this).find('.btn-ok').attr('href') + '</strong>');
});

Ce que vous avez fait était bien, mais il y avait une petite erreur dans votre code:

$(e.relatedTarget).data('href')

Vous avez essayé d'obtenir l'attribut href , mais l'attribut du bouton que vous recherchez est data-href

0
Dan 15 nov. 2017 à 12:12

Essayez ceci Si vous avez trouvé cette erreur "Uncaught ReferenceError: $ is not defined", remplacez "$" par "jQuery".

<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>

<div class="container">
  <h2>Modal Example</h2>
  <!-- Trigger the modal with a button -->
  <button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal">Open Modal</button>

  <!-- Modal -->
  <div class="modal fade" id="myModal" role="dialog">
    <div class="modal-dialog">
    
      <!-- Modal content-->
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal">&times;</button>
          <h4 class="modal-title">Modal Header</h4>
        </div>
        <div class="modal-body">
          <p>Some text in the modal.</p>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>
      </div>
      
    </div>
  </div>
  
</div>

</body>
</html>
0
Karan Mehta 15 nov. 2017 à 12:35
47306411