2008-11-27 11 views
0

Le formulaire HTML ci-dessous ne fonctionne pas comme prévu dans Opera (Version: 9.52). Le formulaire n'a pas d'attribut onsubmit ni d'élément input avec type = submit. Il a juste deux éléments d'entrée de type = button et les deux onclick appelle une méthode js où je veux que l'utilisateur confirme la soumission. Si je supprime l'appel de confirmation(), cela fonctionne parfaitement. Et dans tous les autres navigateurs (FF2, FF3, IE7) cela fonctionne bien.Soumission de formulaire HTML dans Opera

Des pointeurs?

<script type = "text/javascript"> 
function userSubmit(submitStatus) 
{ 
    // Omitted code that uses the parameter 'submitStatus' for brevity 
    if(confirm('Are you sure you want to submit?')) 
     document.qpaper.pStatus.value = something; 
    else 
     return;  
    document.qpaper.submit(); 
} 
</script> 
<form name = "qpaper" method = "post" action = "evaluate.page"> 
    <input name = "inp1" type = "button" value = "Do This" class = "formbutton" onClick = "userSubmit(false)"> 
    <input name = "inp2" type = "button" value = "Do That" class = "formbutton" onClick = "userSubmit(true)"> 
</form> 
+0

Êtes-vous toujours invité? avec la confirmation –

+0

Oui, je reçois l'invite. Et rien ne se passe quand je donne OK. –

Répondre

2
  1. Ne jamais utiliser document.nameofsomething. C'est une technique obsolète qui a un support inégal dans les navigateurs du 21ème siècle. Pour les formulaires, utiliser document.forms.nameofform. N'utilisez pas les boutons onclick on à moins que vous n'ayez besoin que Javascript se comporte différemment selon le bouton pressé. Si vous souhaitez simplement valider le formulaire ou confirmer la soumission, utilisez plutôt <form onsubmit>.

    <form onsubmit="return confirm('Sure?')"> 
    

    Et cette façon vous ne même pas besoin form.submit(). Si <form onsubmit> renvoie la valeur false, la soumission sera annulée.

  2. Vous n'avez même pas besoin de trouver cette forme.
    En <button onclick> le formulaire sera this.form.
    Dans <form onsubmit> forme sera en this variable.

+0

@porneL: Merci pour les conseils. En ce qui concerne votre deuxième point, j'utilise les événements onclick uniquement parce que je veux que le comportement soit différent en fonction du bouton sur lequel on appuie. J'ai omis le code qui utilise le paramètre passé à la fonction JavaScript pour la brièveté. –