Vous pouvez le faire :
$("form :input").change(function() {
$(this).closest('form').data('changed', true);
});
$('#mybutton').click(function() {
if($(this).closest('form').data('changed')) {
//do something
}
});
Cela permet d'installer un change
pour les entrées du formulaire, si l'une d'entre elles change, il utilise la fonction .data()
pour définir un changed
à la valeur true
alors nous vérifions simplement cette valeur au moment du clic, ce qui suppose que #mybutton
est à l'intérieur du formulaire (sinon, il suffit de remplacer $(this).closest('form')
con $('#myForm')
), mais vous pourriez le rendre encore plus générique, comme ceci :
$('.checkChangedbutton').click(function() {
if($(this).closest('form').data('changed')) {
//do something
}
});
Références : Mise à jour de
Selon jQuery, il s'agit d'un filtre permettant de sélectionner tous les contrôles de formulaire.
http://api.jquery.com/input-selector/
Le sélecteur :input sélectionne essentiellement tous les contrôles de formulaire.
1 votes
Voulez-vous dire par l'action d'un autre script inclus dans la page ou dès que l'utilisateur a tapé du texte ou cliqué sur une radio/case à cocher ?
0 votes
J'aurais dû ajouter que je n'ai besoin de vérifier que lors d'un événement click().