Mam kilka hiperłączy, z których każdy ma dołączony identyfikator. Kiedy kliknę ten link, chcę otworzyć modal ( http://twitter.github.com/bootstrap/javascript.html#modals ) i przekazać ten identyfikator modalowi. Szukałem w Google, ale nie mogłem znaleźć niczego, co mogłoby mi pomóc.
To jest kod:
<a data-toggle="modal" data-id="@book.Id" title="Add this item" class="open-AddBookDialog"></a>
Które powinny się otworzyć:
<div class="modal hide" id="addBookDialog">
<div class="modal-body">
<input type="hidden" name="bookId" id="bookId" value=""/>
</div>
</div>
Z tym fragmentem kodu:
$(document).ready(function () {
$(".open-AddBookDialog").click(function () {
$('#bookId').val($(this).data('id'));
$('#addBookDialog').modal('show');
});
});
Jednak po kliknięciu hiperłącza nic się nie dzieje. Kiedy podam hiperłącze <a href="#addBookDialog" ...>
, modal otwiera się dobrze, ale nie zawiera żadnych danych.
Podążyłem za tym przykładem: Jak przekazać argumenty wartości do funkcji modal.show () w Bootstrap
(i próbowałem również: Jak ustawić wartość wejściową w dialogu modalnym? )
źródło
modal('show')
wymagana? Wyglądadata-toggle="modal"
na to, że załatwiłyby to linki.$(this).data('id');
był bezcenny! Nie miałem pojęcia, że można uzyskać dzięki temu atrybuty danych. Z każdym dniem uwielbiam bootstrapy! = P$(this).data()
jest częścią jQuery. api.jquery.com/data/#data-html5Oto czystszy sposób na zrobienie tego, jeśli używasz Bootstrap 3.2.0 .
Link HTML
Modalny JavaScript
http://jsfiddle.net/k7FC2/
źródło
e.currentTarget
jest klikniętym elementem, który jest pobierany ze zdarzenia clicke
. Ta linia znajduje sięinput
z nazwąbookId
i ustawia na niej wartość.$(this)
z$(e.relatedTarget)
działa świetnieOto jak to zaimplementowałem, działając z kodu @ mg1075. Chciałem trochę bardziej ogólnego kodu, aby nie musieć przypisywać klas do modalnych linków / przycisków wyzwalających:
Testowane w Twitterze Bootstrap 3.0.3.
HTML
JAVASCRIPT
źródło
!! $(this).data('id')
zamiasttypeof $(this).data('id') !== 'undefined'
Jeśli używasz bootstrap 3+, możesz go nieco skrócić, jeśli używasz Jquery.
HTML
JQUERY
źródło
Twój kod działałby z poprawną modalną strukturą HTML.
źródło
Bootstrap 4.3 - użyj kodu z fragmentu poniżej - więcej tutaj
Pokaż fragment kodu
źródło
Oto jak możesz wysłać id_data do modalu:
I javascript:
źródło
Spróbuj tego
źródło
Możesz wypróbować simpleBootstrapDialog . Tutaj możesz przekazać tytuł, wiadomość, opcje oddzwaniania w celu anulowania i przesłania itp ...
źródło
Jest to takie proste dzięki jquery:
Jeśli poniżej znajduje się link kotwiczny:
W przypadku pokazu swojego modalu możesz uzyskać dostęp do tagu kotwicy, jak poniżej
źródło