2009-02-13 4 views
2

Je travaille sur une application javascript qui a un formulaire avec un bouton qui traite les entrées dans le navigateur. Il est important que les données ne soient jamais envoyées accidentellement au serveur lorsque le bouton est enfoncé. Les situations où cela peut se produire est que le navigateur n'a pas activé javascript ou que l'implémentation DOM peut avoir un bug où le clic sur le bouton est brièvement perdu (j'ai vu cela une fois en test mais pas de manière reproductible) .Le moyen le plus sûr de s'assurer qu'un bouton HTML n'envoie aucune information au serveur

La manière évidente de faire ceci semble être de ne pas avoir un bouton ou un soumettre mais une autre structure que je donnerais l'apparence d'un bouton. Y a-t-il de meilleures idées? Y at-il quelque chose comme un attribut de formulaire qui désactive les données envoyées à partir du formulaire - et est bien mis en œuvre à travers les navigateurs?

Merci

Répondre

10
<input type="button"> 

ne présente pas une forme, à la différence

<input type="submit"> 
+0

+0

0

Sûrement une sorte de bouton d'image ferait? Créez une belle image et utilisez un événement onclick pour poster. Résoudrait certainement le problème de JavaScript désactivé.

1

Essayez d'utiliser un <input type="button"> qui n'est pas sous la forme. De cette façon, même si le bouton est cliqué, et même si le navigateur pense à tort qu'il doit envoyer quelque chose, il n'aura aucune idée de l'endroit où envoyer les données pour le traitement car aucun attribut action n'est associé au bouton.

Alternativement, vous pouvez regarder this question concernant les boutons CSS sans image utilisés dans Gmail.

+0

non que cela compte vraiment mais qu'une telle chose, une entrée qui n'est pas sous une forme, valide? –

+0

Je ne suis pas sûr, vous pouvez l'essayer et voir. Quoi qu'il en soit, Julien fait en fait le meilleur point, vous devriez être capable de mettre l'entrée du bouton dans un formulaire et à moins que le navigateur ne soit cassé, cela ne provoquera pas de soumission. –

0

Essayez de créer simplement un bouton:

<input type="button" value="some text"> 

Vous pouvez utiliser onclick = gestionnaire pour traiter les données.

Si vous voulez faire des boutons non-entrée colombophile, consultez ce gmail fait: http://stopdesign.com/archive/2009/02/04/recreating-the-button.html

+0

Vous pouvez personnaliser le contenu d'une balise de bouton: http://stackoverflow.com/questions/954327/hidden-features-of-html/954927#954927 – TFM

0

Vous êtes autorisé à avoir des boutons et des entrées en dehors d'un <form>, et dans ce cas, il n'y a pas quelque chose de façon possible peut être soumis au serveur.

Questions connexes