Comment effacer tous les champs de saisie d'un modal Bootstrap V3 en cliquant sur le bouton de suppression des données?
http://getbootstrap.com/javascript/#modals affiche un événement pour le moment où un modal est masqué. Il suffit de puiser dans cela:
$('#modal1').on('hidden.bs.modal', function (e) {
$(this)
.find("input,textarea,select")
.val('')
.end()
.find("input[type=checkbox], input[type=radio]")
.prop("checked", "")
.end();
})
Je suggère ce qui précède, car il lie la compensation au modal lui-même au lieu du bouton de fermeture, mais je réalise que cela ne répond pas à votre question spécifique. Vous pouvez utiliser la même logique d'effacement liée aux boutons de rejet:
$('[data-dismiss=modal]').on('click', function (e) {
var $t = $(this),
target = $t[0].href || $t.data("target") || $t.parents('.modal') || [];
$(target)
.find("input,textarea,select")
.val('')
.end()
.find("input[type=checkbox], input[type=radio]")
.prop("checked", "")
.end();
})
Il y a un moyen plus facile et plus beau:
$('#MyModal').on('hidden.bs.modal', function () {
$(this).find('form').trigger('reset');
})
reset
est une fonction prédéfinie, vous pouvez également utiliser $(this).find('form')[0].reset();
Et la classe modale de Bootstrap expose quelques événements à intégrer dans les fonctionnalités modales, detail at here .
hide.bs.modal
Cet événement est déclenché immédiatement lorsque l'instance de masquage méthode a été appelée.
hidden.bs.modal
Cet événement est déclenché lorsque le modal a fini d'être caché de l'utilisateur (attendra que les transitions CSS soient terminées).
Ceci est utile, son travail pour moi ..
$('.bd-example-modal-sm').on('hidden.bs.modal', function () {
$(this).find("select").val('').end(); // Clear dropdown content
$("ul").empty(); // Clear li content
});
Je l'ai fait de la manière suivante.
form
(qui est placé à l'intérieur du modal) une ID
.data-dimiss
une ID
.onclick
lorsque vous cliquez sur data-dimiss
.Utilisez la fonction trigger()
sur l'élément form
. J'ajoute l'exemple de code avec.
$(document).ready(function()
{
$('#mod_cls').on('click', function () {
$('#Q_A').trigger("reset");
console.log($('#Q_A'));
})
});
<div class="modal fade " id="myModal2" role="dialog" >
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" ID="mod_cls" data-dismiss="modal">×</button>
<h4 class="modal-title" >Ask a Question</h4>
</div>
<div class="modal-body">
<form role="form" action="" id="Q_A" method="POST">
<div class="form-group">
<label for="Question"></label>
<input type="text" class="form-control" id="question" name="question">
</div>
<div class="form-group">
<label for="sub_name">Subject*</label>
<input type="text" class="form-control" id="sub_name" NAME="sub_name">
</div>
<div class="form-group">
<label for="chapter_name">Chapter*</label>
<input type="text" class="form-control" id="chapter_name" NAME="chapter_name">
</div>
<button type="submit" class="btn btn-default btn-success btn-block"> Post</button>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button><!--initially the visibility of "upload another note" is hidden ,but it becomes visible as soon as one note is uploaded-->
</div>
</div>
</div>
</div>
J'espère que cela aidera les autres, car cela faisait longtemps que je me débattais.
Si vous utilisez un formulaire dans le modal, vous pouvez utiliser
$("#form_id").trigger("reset");
Ce qui suit a fonctionné pour moi:
$(':input').val('');
Cependant, il soumet le formulaire, il se peut donc que ce ne soit pas ce que vous recherchez.
insérez votre corps modal dans un formulaire avec un id = "myform"
et alors
$("#activatesimModal").on("hidden.bs.modal",function(){
myform.reset();
});
devrait faire l'affaire
Placez le contenu de votre modal dans un formulaire et donnez-lui un identifiant égal à "myForm".
Lorsque vous cliquez sur le bouton de fermeture, cliquez sur la fonction "myFunction ()".
<button class="btn btn-default" data-dismiss="modal" onclick="myFunction()">Cancel</button>
function myFunction() {
document.getElementById("myForm").reset();
}
$('[data-dismiss=modal]').on('click', function (e)
{
var $t = $(this),
target = $t[0].href || $t.data("target") || $t.parents('#myModal') || [];
$(target)
.find("input")
.val('')
.end()
.find("input[type=checkbox]")
.prop("checked", " ")
.end();
$("span.inerror").html(' ');
$("span.inerror").removeClass("inerror");
document.getElementById("errorDiv1").innerHTML=" ";
})
Ce code peut être utilisé à la fermeture (suppression de données) de modal (pour effacer tous les champs).
Ici, j'ai effacé mes champs de saisie et mon div en tant que id="errorDiv1"
qui contient toutes les erreurs de validation.
Avec ce code, je peux aussi effacer les autres erreurs de validation ayant class inerror
, spécifié dans la balise span avec class inerror
.__ et qui n’était pas possible avec document.getElementsByClassName
.