Je travaille sur l'interface graphique Web d'un produit semblable à un appareil.Incidence des boutons "réussis" lors de l'appel de form.submit()
J'ai un formulaire HTML qui fonctionne bien: il montre une liste de choses avec des cases à cocher, l'utilisateur vérifie certaines d'entre elles et clique sur le bouton "supprimer" qui soumet le formulaire. Le serveur obtient le POST, supprime les éléments et actualise la page. Tout va bien.
Il est nécessaire d'ajouter "Êtes-vous sûr?" confirmation au formulaire. Si j'ajoute un appel à
confirm("are you sure?");
comme méthode onsubmit dans la balise FORM, ou onclick dans la balise bouton Envoyer, il fonctionne très bien, mais utilise la boîte de dialogue de confirmation laid natif navigateur.
Ailleurs dans le produit que nous avons une belle boîte de dialogue de confirmation de style CSS personnalisé Je voudrais utiliser, mais cela fonctionne comme ceci: A l'endroit approprié, vous mettez un appel à
myConfirm("Confirm", "Are you sure", "Yes", "No", confirmCallback);
Cela met un masque de clic, personnalise une boîte de dialogue, centre et l'affiche, puis retourne FALSE et le formulaire ne pas soumettre. Plus tard, lorsque l'utilisateur décide, s'il appuie sur "Oui", il appelle la fonction confirmCallback. Dans l'autre, les pages basées sur Ajax du produit rassemblent des informations, créent un postBody et utilisent l'objet Ajax de Prototype pour les publier, et tout va bien. (Si « Non », la boîte de dialogue et clickmask sont supprimés et les choses continuent.)
Sur cette page plus simple, avec la forme pure HTML, j'ai une fonction confirmCallback qui ressemble à ceci:
var confirmCallback = function() {
document.myForm.submit();
}
et il se déclenche correctement, mais lorsque le formulaire est soumis, le bouton de suppression a déjà été cliqué, et le faux retourné par le client confirme la soumission supprimée. Au lieu de cela, ceci est considéré comme une nouvelle soumission, et le bouton de suppression n'a pas été cliqué, donc il n'est pas considéré comme "réussi" en termes de la norme HTML 4 de W3.org section 17.13.3. Le serveur obtient les données, aucun bouton de suppression, dit "Je l'ai eu mais je ne sais pas ce que vous voulez que je fasse avec" et ne fait que servir la page suivante.
Si vous avez lu jusqu'ici, MERCI, et voici ma vraie question. Comment puis-je, dans ma fonction javascript de confirmationCallback, de manière croisée, déclencher le bouton de suppression, devenir "réussi" et soumettre avec le reste des données?
Eh bien, ce qui fonctionnait était l'ajout d'une entrée cachée avec name = value = "remove", ce qui trompait le serveur en lui faisant croire que le bouton était enfoncé. Cela ne résout toujours pas le problème indiqué, mais fait fonctionner le formulaire AVEC le joli dialogue de confirmation, qui compte. Merci pour l'aide de tout le monde. – Berry