Ich habe eine Bootstrap 2.32 modal, die ich versuche, dynamisch in das HTML einer anderen Ansicht einzufügen. Ich arbeite mit Codeigniter 2.1. Folgende Dynamically inserting a bootstrap modal partial view into a view, ich habe:
<div id="modal_target"></div>
als Ziel div für die Einfügung. Ich habe eine Schaltfläche in meiner Ansicht, die wie folgt aussieht:
$.ajax({
type : 'POST',
url : "AjaxUpdate/get_modal",
cache : false,
success : function(data){
if(data){
$('#modal_target').html(data);
//This shows the modal
$('#form-content').modal();
}
}
});
Der Knopf der Hauptansicht ist:
<a href="#message" class="btn btn-large btn-info" data-action="Message" data-toggle="tab">Message</a>
Mein JS hat
<div id="thanks"><p><a data-toggle="modal" href="#form-content" class="btn btn-primary btn-large">Modal powers, activate!</a></p></div>
Hier ist, was ich würde gerne getrennt als Teilansicht:
<div id="form-content" class="modal hide fade in" style="display: none;">
<div class="modal-header">
<a class="close" data-dismiss="modal">×</a>
<h3>Send me a message</h3>
</div>
<div class="modal-body">
<form class="contact" name="contact">
<fieldset>
<!-- Form Name -->
<legend>modalForm</legend>
<!-- Text input-->
<div class="control-group">
<label class="control-label" for="user">User</label>
<div class="controls">
<input id="user" name="user" type="text" placeholder="User" class="input-xlarge" required="">
<p class="help-block">help</p>
</div>
</div>
<!-- Text input-->
<div class="control-group">
<label class="control-label" for="old">Old password</label>
<div class="controls">
<input id="old" name="old" type="text" placeholder="placeholder" class="input-xlarge">
<p class="help-block">help</p>
</div>
</div>
<!-- Text input-->
<div class="control-group">
<label class="control-label" for="new">New password</label>
<div class="controls">
<input id="new" name="new" type="text" placeholder="placeholder" class="input-xlarge">
<p class="help-block">help</p>
</div>
</div>
<!-- Text input-->
<div class="control-group">
<label class="control-label" for="repeat">Repeat new password</label>
<div class="controls">
<input id="repeat" name="repeat" type="text" placeholder="placeholder" class="input-xlarge">
<p class="help-block">help</p>
</div>
</div>
</fieldset>
</form>
</div>
<div class="modal-footer">
<input class="btn btn-success" type="submit" value="Send!" id="submit">
<a href="#" class="btn" data-dismiss="modal">Nah.</a>
</div>
</div>
Wenn ich auf die Schaltfläche klicken, wird der modale richtig eingesetzt, aber ich erhalte den folgenden Fehler:
TypeError: $(...).modal is not a function
Wie kann ich dieses Problem beheben?
Überprüfen Sie, ob es mit 'jQuery (...) funktioniert. Modal' . Ihr jQuery befindet sich möglicherweise im Kompatibilitätsmodus. Überprüfen Sie auch, ob jQuery zweimal enthalten ist. – mwebber
gibt es eine große Wahrscheinlichkeit, dass bootstrap.js nicht geladen wird, bevor Sie versuchen zu rufen .modal() –
mwebber - Ich bin nicht mit js erfahren, Wie „ich überprüfen, ob es mit jQuery (...) funktioniert. modal." Ich vermute irgendwie in der Konsole? Etsitra, bootstrap.js wird in den Header geladen, bevor dies alles geschieht. – user61629