11536 sujets

JavaScript, DOM et API Web HTML5

Bien le bonsoir à tous.

je vous demande votre aide, car cela fait un moment que j'épluche les réponses de google sans y arriver.

Ce que je veus faire dans le concept est tres simple, mais pour un néophyte comme moi, je n'arrive pas à trouver la solution.

Voici ma problématique.

J'ai un formulaire que l'on supposera correctement programmé.
Qui peut être valider via un bouton prévu à cet effet.
Le formulaire redirige à l'adresse Mapage.html

Jusque là tout va bien.
Immaginez maintenant que j'ai un lien.
Avec ce lien, je voudrais faire 2 actions :
La premiere est de changer l'attribut action de mon formulaire en le remplaçant par Mapage2.html
AINSI que de valider le formulaire.

Pour valider le formulaire j'ai déjà trouvé :
<A HREF="javascript:document.NewsLetter.MaFonction()">Valider</A>


Mais je ne sais pas comment changer l'attribut action de mon formulaire pour que quand je clique sur le lien et d'un je change l'attribut action, et de deux, je valide mon formulaire (qui donc ira sur la page poiinté par l'attribut anisi changé)

Voilà j'espere avoir été le plus possible compréhensible. Dans le cas échéant, n'hésitez pas à poser des questions.
Modifié par b2-mk2 (02 May 2006 - 13:46)
hum; et tu vas dire que tu ne peux pas directement donner Mapage2 comme destination à ton formulaire?
bizarre...;

ceci dit, pour (re)définir la valeur de action:

mon_form.action="valeur";
...
Par ailleurs (cf ton premier message), je te déconseille cette notation pour accéder à ton formulaire :
document.newsletter.submit();
au profit de celle-ci qui offre une meilleure compatibilité :
document.forms['newsletter'].submit();
et pour modifier l'action ça donne :
document.forms['newsletter'].action = "...";

Mais je suis d'accord avec javatwister : pourquoi ne pas directement fixer l'action à ta page2.html ?

Si ton formulaire propose deux traitements différents, pourquoi ne pas faire comme tout le monde c'est-à-dire utiliser deux boutons submit ?
Bonjour .
Tout d'abord merci d'avoir répondu à mon message aussi vite.

Je vous ai exposé un contexte qui n'était pas sur lequel je bute, mais un contexte plus simple d'explication et de compréhension.
Mais qui ne change en rien la réponse que vous m'avez donné.

En fait, j'ai un formulaire, bateau, et une page, dont le contenue, est changé par des includes d'autre page.
Ces includes, sont appelés suivant sur quel onglet l'utilisateur clique.
Onglet, dont vous avez surement compris, représentés par des liens.

Seulement, je doit prévoir que l'utilisateur passe d'un onglet à l'autre en ayant oublié de cliquer sur le bouton valider.
Il me fallait donc un moyen de valider le formulaire, et de changer de page.
le seul moyen qu'il met donné à ma connaisance, est de changer l'attribut action de mon formulaire suivant le lien ainsi cliqué.

Voila, c'est asssez claire dans ma tête, car j'ai mon algo, mais à l'expliquer, c'est une toute autre affaire.

Je vais donc m'atteller à metre en pratique les solutions suggerrés.
Merci bien.
Bon, je revient à la charge avec mon probleme :

On suppose la même problèmatique que dans mon premier post (vous oubliez les histoires d'onglet, ca sera plus facil, pour vous, et surtout pour moi)

voici ce que je suis parvenu à faire grace à votre aide :


<html>
	<head>
		<script language="javascript">
			<!--
			function fonct(){
				document.forms['newsletter'].action = "test2.php?val=true";
				document.forms['newsletter'].submit();
			}
			//-->
		</script>
	</head>
	<body>

		<form action="test2.php" method=POST name="NewsLetter">
			Votre email:
			<input type=text name=mail><br>
			<input type=submit value="valider" name="Vbutton">
		</form>
		<a href="javascript: fonct()">lien</a>



	</body>
</html>


Le probleme, suivant, est que ce script javascript, ne fonctionne pas.
Lorsque je fait une alert toute bête, ca fonctionne parfaitement bien, mais pour changer l'action, et valider le formulaire, il me renoie dans mes chemises l'animal.

Ai-je oublié un détail, ou n'ai-je pas compris quelque chose?
Auriez vous encore une fois, l'extrême amabilité, une nouvelle fois, de m'aiguillé sur la voie.

D'avance, je vous remercie.
Modifié par b2-mk2 (26 Apr 2006 - 09:24)
On m'a donné la réponse:
le problème était tout bête : j'ai pas modifier correctement mon script.
ce qui fait, que je n'avais pas correctement respecté ma convention d'écriture, à savoir mes majuscules.

Code corrigé :


<html>
	<head>
		<script language="javascript">
			<!--
			function fonct(){
				document.forms['NewsLetter'].action = "test2.php?val=true";
				document.forms['NewsLetter'].submit();
			}
			//-->
		</script>
	</head>
	<body>

		<form action="test2.php" method=POST name="NewsLetter">
			Votre email:
			<input type=text name=mail><br>
			<input type=submit value="valider" name="Vbutton">
		</form>
		<a href="javascript: fonct()">lien</a>



	</body>
</html>


ps :
Désolé pour le flood, mais c'est une habitude que je prends pour des personnes dans mon cas même si ce script n'est pas d'une difficulté sans nom.

Merci encore pour votre aide.
Modifié par b2-mk2 (02 May 2006 - 13:50)