Fonction onclick appelée intempestivement
Bonjour,
Lorsque je clique sur un emplacement aléatoire en dehors du bouton qui déclenche normalement l’événement la fonction définie dans le onclick est appelée. Ce n'est pas systématique et je n'arrive pas à discerner les cas où ceci se produit. Je pense qu'il y a une interférence avec un autre script. J'ai pensé remplacer cette appel par un écouteur pour contrôler l'événement déclencheur mais dans ce cas, je ne sais pas comment transmettre l'argument de la fonction.
Source html:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| <form method='post' action="" class="L displCard" style="padding:5px 10px;">
<input type="hidden" name="id" value="120" />
<fieldset><legend>Conjoint</legend>
<p class="note">Vous pouvez modifier les champs grisés après avoir fait un double clic dessus.</p>
<div class="multiCols">
<div class="div1" style="margin:0;">
<label>Prénom</label><input type="text" name="prenom" value="Nathalie" readonly /><br/>
<label>Nom</label><input type="text" name="nom" value="Xxx" readonly /><br/>
</div>
<div class="div2">
<label>Tél. portable</label><input type="text" name="tel_portable" value="" readonly /><br/>
<label>Tél. travail</label><input type="text" name="tel_travail" value="" readonly /><br/>
<label>Courriel</label><input type="text" name="courriel" value="" readonly /><br/>
</div>
</div>
<!-- Appel de la page delFamilyMember.php -->
<p style="width:480px;" class="center"><input type="submit" id='del' value="Effacer" onclick='confirmBeforeDel({"id":"251","prenom":"Nathalie","nom":"Xxx","courriel":null,"tel_travail":null,"tel_portable":null})' /></p>
</fieldset>
<fieldset><legend>Enfants</legend>
<p class="note">Les lignes en italiques correspondent aux enfants du conjoint.</p>
<table>
<thead><tr><th>Prénom</th><th>Nom</th><th>Date de naissance</th><th>Tél. portable</th><th>Tél. travail</th><th>Courriel</th><th></th><th></th><td></td></tr></thead><tbody><tr><td colspan="9" style='text-align:center;'><i>Ce tableau ne contient aucune information.</i></td></tr></tbody> <tr><td colspan="9" class="center"><input type="submit" value="Nouveau" formaction="parentPage.php?childPageKey=6&relation=9" /></td></tr>
</table>
</fieldset>
</form>
<script>
const message = "Etes-vous sûr de vouloir effacer %s*?";
</script> |
Dans cet exemple, le tableau est vide mais lorsqu'il ne l'est pas, il contient un td comme ceci:
Code:
<td><img src='del.png' onclick='confirmBeforeDel(" . json_encode($child) . ")' /></td>
Fichier JavaScript:
Code:
1 2 3 4 5 6 7 8 9 10 11
| "use strict";
const mainForm = document.querySelector('.displCard');
// Effacement d'un membre de la famille
function confirmBeforeDel(person) {
if ( confirm(message.replace('%s', person.prenom+' '+person.nom)) ) {
mainForm.action = "delFamilyMember.php?id="+person.id;
mainForm.submit();
}
} |