Comment pouvez-vous effacer le modal bootstrap lors du rejet/masquage/fermeture?
J'ai la définition modale suivante:
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal">
Add New Comment
</button>
Vue partielle qui contient Modal
@Html.Partial("_CreateComment", Model)
// Partial view which contains modal
<div class="modal fade" id="myModal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
@using (Ajax.BeginForm("AddComment", "Blog", new AjaxOptions
{
HttpMethod = "POST",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "comments",
OnSuccess = "$('#myModal').modal('hide');"
}))
{
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<h4 class="modal-title" id="myModalLabel">Add Comment</h4>
</div>
<div class="modal-body">
@Html.ValidationSummary(true)
@Html.HiddenFor(model => model.Blog.BlogID)
<div class="form-group">
@Html.LabelFor(model => model.BlogComment.Comment)
@Html.TextAreaFor(model => model.BlogComment.Comment, 4, 104, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.BlogComment.Comment)
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary">Save changes</button>
<button type="button" class="btn btn-primary" data-dismiss="modal">Close</button>
</div>
}
</div>
</div>
</div>
Et voici le javascript que j'utilise pour effacer le contenu:
$(function () {
//clear modal cache, so that new content can be loaded
$('body').on('hidden.bs.modal', '.modal', function () {
$(this).removeData('bs.modal');
});
});
Si je rejette le modal après avoir saisi du contenu ou lors de la soumission, le contenu du formulaire n'est pas clair?
c'est la solution la plus simple:
$('#myModal').on('hidden.bs.modal', function () {
$(this).find("input,textarea,select").val('').end();
});
Utilisez val('')
en fonction des types d'entrée présents et utilisez #myModal
au lieu de body
$('#myModal').on('hidden.bs.modal', function () {
$('.modal-body').find('textarea,input').val('');
});