Question

Voici le problème:

Ma page affiche un ensemble d'éléments. Chaque élément a une case à cocher qui lui est associé (ce qui fait partie d'un formulaire). L'utilisateur peut vérifier ces types de cases à cocher et appuyez sur le bouton « Supprimer ». La même page a également un bouton « Envoyer » qui télécharger une feuille Excel des éléments. En ce moment, mes d'action peut envoyer une forme à dire: « xyzAction » et j'ai deux gestionnaires différents (analogues à action Struts) - une pour la suppression des magasins et d'autres magasins pour le téléchargement.

On me dit que la meilleure façon de le faire est de compter sur javascript en faisant un de ces: 1)) Mise en action sous forme de presse de télécharger et supprimer des boutons - il par faire appel à différentes actions. 2) Utilisez une variable cachée « agir » pour le mettre à supprimer / télécharger et soumettre à une seule forme. L'action côté serveur prendrait soin d'identifier l'acte et la transmission à l'action correspondante.

Approche (1) - semble très inélégante pour moi. Jouer avec l'action de forme ne semble pas nécessaire. Approche (2) -. Ne fonctionne évidemment pas si votre javascript est désactivé et ne soit très élégant

Il doit y avoir un troisième moyen de le faire ?, qui me ferait plaisir?

Était-ce utile?

La solution

Vous devez obtenir le code HTML correct d'abord.

Vous avez deux actions différentes, de sorte que vous devriez avoir deux formes - une bonne règle de base est que chaque forme doit avoir un seul bouton soumettre. C'est la meilleure pratique pour HTML et veillera à ce que la page fonctionne sans JS ou tout autre supercherie.

Une fois que vous avez la page de travail comme celui-ci, utilisez JS pour manipuler le DOM pour produire l'interface utilisateur que vous avez besoin. Cela utilise JS pour ajouter behvour à l'interface utilisateur et est la meilleure pratique pour JS discrète.

(Si vous voulez vraiment amalgamer vos actions sous une forme unique, en changeant l'action de la forme avec JS est le meilleur plan d'action. Mais ce qui se passerait si un utilisateur vérifie une case à cocher avant de modifier leur esprit et télécharge un fichier en laissant la case cochée. Vous devez vous assurer que cela ne devrait pas supprimer quoi que ce soit.)

Autres conseils

On dirait que vous devrez peut-être deux formes différentes, pour les deux actions différentes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top