2009-12-02 6 views
0

J'ai une page avec un formulaire et des liens de navigation. Si vous cliquez sur un lien de navigation, je dois soumettre le formulaire et suivre la demande de navigation. Pour ce faire, j'ai un lien dont href pointe vers la nouvelle demande de page et j'ai l'événement onclick lié à une fonction qui soumet le formulaire sur la page.Problème avec plusieurs actions onclick

Ce scénario peut-il causer des problèmes de reproduction du formulaire?

ex:

function submitForm(){ 
document.myform.submit(); 
} 

<a href="page1.html" onclick="submitForm()">Back To page 1</a> 
<form action="procsub" method="post"><input type="text" id="val1" /></form> 
+0

Peut-être - l'exemple de code que vous avez là ne pouvait pas fonctionner - probablement que vous avez tapé cela dans un exemple approximatif? Je vous suggère de modifier votre question pour inclure un cas de test minimal approprié. Si vous faites cela, je suis sûr que quelqu'un sera en mesure de vous aider correctement. – Polsonby

Répondre

0

Envoi d'un formulaire signifie essentiellement recharger la page (ciblant la même page, ou un autre, tel que défini dans la formule). suivre un lien est aussi un moyen de recharger la page.

ce que vous pourriez faire serait de modifier votre fonction submitForm comme ceci:

function submitForm(a) { 
    document.myform.action += '?redirectPage=' + a.href; // given that action doesn't already contain querystrings 
    document.myform.submit(); 
} 

et

<a href="page1.html" onclick="submitForm(this);">Back to page 1</a> 

Et alors la page qui gère la demande de formulaire, procédez postback à quelle que soit la page était passé comme redirectPage.

Un formulaire de soumission n'est vraiment pas ce que l'utilisateur attend en cliquant sur 'retour à la page 1'. vous voudrez peut-être penser à cela encore une fois ...

+0

C'est une solution que j'ai battue pendant un moment. Dans cette situation particulière, une soumission est ce que l'utilisateur attend. Eh bien, ils s'attendent à ce que les changements qu'ils ont apportés soient sauvegardés même s'ils changent de page. – IaCoder

0

Lorsque vous exécutez le javascript pour soumettre le formulaire qu'il va poster à tout ce que l'URL d'action est de la forme. Cela vous redirigera et votre javascript ne sera probablement pas exécuté. A.) Changez votre submitForm() pour publier via AJAX, puis faites une redirection javascript avec un window.location? . ->More Info

b) Faites une redirection de ce que la page d'action est à l'endroit où vous voulez aller par:
    1.) faire passer un champ caché sous la forme avec l'URL de destination
    2.) ayant une redirection fixe à partir de la page d'action, soit dans l'en-tête ou en javascript

Questions connexes