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
4 réponses
J'ai mis le fichier jQuery sur la tête au lieu du bas du corps et cela fonctionne. Je vous remercie.
Essayez d'utiliser shown
au lieu de show
$('#openModal').on('shown.bs.modal', function(e) {
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
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">×</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>
Questions connexes
De nouvelles questions
jquery
jQuery est une bibliothèque JavaScript, pensez également à ajouter la balise JavaScript. jQuery est une bibliothèque JavaScript multi-navigateur populaire qui facilite la traversée du Document Object Model (DOM), la gestion des événements, les animations et les interactions AJAX en minimisant les écarts entre les navigateurs. Une question marquée jQuery doit être liée à jQuery, donc jQuery doit être utilisée par le code en question et au moins les éléments liés à l'utilisation de jQuery doivent être dans la question.