un script JS

  • Créateur du sujet Créateur du sujet Halbert
  • Date de début Date de début
A

Anonyme

Invité
Bonsoir

Encore un problème avec un script (ce sont mes premiers scripts!)

Exo classique j'imagine pour un débutant en JS : un visiteur entre une donnée dans un champ d'un formulaire et on veut que la valeur soit affichée dans le formulaire dans un champ prévu à cet effet.
Tout marche bien sauf que la valeur s'affiche une seconde puis la page est visiblement rechargée, réinitialisant de ce fait les champs : comment l'en empêcher ?

<script type="text/javascript">

function afficher(F)
{
var entree=document.F.entiern.value;
document.F.factn.value=entree;
}

</script>

<Form NAME="F">

<p>
<fieldset>

<legend> xxxxx </legend>

<label for="entiern">valeur de n :</label>

<input type="text" name="entiern" size="10" id="entiern" />

<input name="reset" value="Effacer" type="reset" align="" width="387" />

<input name=" O K " value=" Soumettre " type="submit" method="get" onClick="afficher(F)" /><br />
<label for="factn"> n = </label>
<input type="text" name="factn" size="20" value="" /> <br />

</fieldset>
</p>

</form>


merci par avance et bonne soirée
Albert
 
Bonsoir

Encore un problème avec un script (ce sont mes premiers scripts!)

Exo classique j'imagine pour un débutant en JS : un visiteur entre une donnée dans un champ d'un formulaire et on veut que la valeur soit affichée dans le formulaire dans un champ prévu à cet effet.
Tout marche bien sauf que la valeur s'affiche une seconde puis la page est visiblement rechargée, réinitialisant de ce fait les champs : comment l'en empêcher ?

<script type="text/javascript">

function afficher(F)
{
var entree=document.F.entiern.value;
document.F.factn.value=entree;
}

</script>

<Form NAME="F">

<p>
<fieldset>

<legend> xxxxx </legend>

<label for="entiern">valeur de n :</label>

<input type="text" name="entiern" size="10" id="entiern" />

<input name="reset" value="Effacer" type="reset" align="" width="387" />

<input name=" O K " value=" Soumettre " type="submit" method="get" onClick="afficher(F)" /><br />
<label for="factn"> n = </label>
<input type="text" name="factn" size="20" value="" /> <br />

</fieldset>
</p>

</form>


merci par avance et bonne soirée
Albert
Pour ce genre d'action il faut utiliser un "button" et pas un "submit" ;)
 
ok . Maintenant, j'essaye de réupérer le factorielle n et de rentrer la valeur dans le champ
Albert
Bloc de code:
<script type="text/javascript">

function afficher(F)
{
var entree = document.F.entiern.value;
document.F.factn.value = factoriel(parseInt(entree));
}

</script>
Il faut &#233;videmment que &#233;crive la fonction "factoriel" ;)
 
Bloc de code:
<script type="text/javascript">

function afficher(F)
{
var entree = document.F.entiern.value;
document.F.factn.value = factoriel(parseInt(entree));
}

</script>
Il faut &#233;videmment que &#233;crive la fonction "factoriel" ;)

J'avais fait &#231;a :

<script type="text/javascript">

function calcul()
{

N=document.forms[0].elements[0].value;

if (N !=="")

{

var fact=1;
var x=0;

while (x < N)
{
x=x+1;
fact=fact*x;
}

entree=x+"! = "+fact;
document.F.factn.value=entree;

}
}


</script>

C'est impeccable sous Safari mais sous Firefox &#231;a ne marche pas !
Albert
 
Bloc de code:
<script type="text/javascript">

function afficher(F)
{
var entree = document.F.entiern.value;
document.F.factn.value = factoriel(parseInt(entree));
}

</script>
Il faut évidemment que écrive la fonction "factoriel" ;)

En utilisant ton idée, ça donne ceci, qui peut servir pour les débutans comme moi en JS.
Ca marche:

<script type="text/javascript">

function factoriel(N)
{


if (N !=="")

{

var fact=1;
var x=0;

while (x < N)
{
x=x+1;
fact=fact*x;
}
return x+"! = "+fact;

}
}



function afficher(F)
{
var N = document.F.entiern.value;
document.F.factn.value = factoriel(N);
}

</script>
<form name="F">

<p>
<fieldset>

<legend> Factorielle n</legend>

<label for="entiern">valeur de n :</label>

<input type="text" name="entiern" size="10" id="entiern" />

<input name="reset" value="Effacer" type="reset" align="" width="387" />

<input name=" O K " value=" Soumettre " type="button" method="get" onClick="afficher(F)" /><br />

<label for="factn"> Résultat : </label>

<textarea type="textarea" name="factn" rows="1" cols="100" value=""> </textarea> <br />

</fieldset>
</p>


</form>


Albert
 
Bloc de code:
<script type="text/javascript">

function afficher(F)
{
var entree = document.F.entiern.value;
document.F.factn.value = factoriel(parseInt(entree));
}

</script>
Il faut évidemment que écrive la fonction "factoriel" ;)


Bonsoir

Question :

un formulaire comprend par exemple 3 champs : les champs 1 et 2 pour entrer des données et le champ 3 pour récupérer un résultat via un script en Javascript.

Imaginons que l'utilisateur entre deux valeurs dans les champs 1 et 2, valide pour obtenir son résultat, et souhaite ensuite simplement modifier le champ 2 : le nouveau résultat du script va s'ajouter au premier dans le champ 3.

Donc : comment faire pour que le nouveau résultat se substitue au premier dans le champ 3 ?

Bonne soirée à tous

Albert
 
Bonsoir

Question :

un formulaire comprend par exemple 3 champs : les champs 1 et 2 pour entrer des données et le champ 3 pour récupérer un résultat via un script en Javascript.

Imaginons que l'utilisateur entre deux valeurs dans les champs 1 et 2, valide pour obtenir son résultat, et souhaite ensuite simplement modifier le champ 2 : le nouveau résultat du script va s'ajouter au premier dans le champ 3.

Donc : comment faire pour que le nouveau résultat se substitue au premier dans le champ 3 ?

Bonne soirée à tous

Albert
Soit l'utilisateur peut recliquer sur un bouton, soit tu le fait automatiquement avec l'&#233;venement onchange sur les champs 1 et 2 ;)
 
Soit l'utilisateur peut recliquer sur un bouton, soit tu le fait automatiquement avec l'évenement onchange sur les champs 1 et 2 ;)

Merci je vais essayer.

Je viens de trouver ce qui empêche mon script de fonctionner sous firefox : c'est l'instruction
nomdemonformulaire.nomdunchamp.value+=


Y a-t-il une autre instruction équivalente ?

Albert
 
Merci je vais essayer.

Je viens de trouver ce qui empêche mon script de fonctionner sous firefox : c'est l'instruction
nomdemonformulaire.nomdunchamp.value+=


Y a-t-il une autre instruction équivalente ?

Albert
&#224; priori &#231;a devrait fonctionner :) essaye document.nomduformulaire.nomduchamp.value ou alors document.getElementById('idduchamp').value :)
 
Oui je pense que la syntaxe est bonne, copie colle le bout de js ici pour être sûr ;)

Ok le voilà... (n'oublie pas que ce sont mes premiers scripts)

function pgcd(a,b)
{
if (a==0 && b==0)
{
return ("Calcul impossible, a et b ne peuvent être tous les deux nuls.")
}

else if (Math.floor(a) != a || Math.floor(b) != b || a<0 || b<0)
{
return ("Calcul impossible, a et b doivent être des entiers positifs.")
}

else

if ((a !=="") || (b !==""))
{
var u=a,v=b,w;
while (v != 0)
{
//w=u-Math.floor(u/v)*v;
w=u%v;
PGCDPPCM.etapes.value+=u+"="+v+"x"+Math.floor(u/v)+"+"+w+"\n"
u=v;
v=w;

}
PGCDPPCM.etapes.value+="Le pgcd de "+a+" et "+b+" est donc "+u+".\n"
PGCDPPCM.etapes.value+="--------------------------------------------\n"

}
var mu;
mu=(a*b)/u;
PGCDPPCM.ppcm.value="ppcm("+a+","+b+")="+mu
return ("pgcd("+a+","+b+")="+u)

}


Albert
 
Ok le voil&#224;... (n'oublie pas que ce sont mes premiers scripts)

...


Albert
Je viens de tester chez moi ton script et &#231;a marche tr&#232;s bien ;)

Bloc de code:
<script type="text/javascript">

	function pgcd(a,b)
	{
	if (a==0 && b==0)
	{
	return ("Calcul impossible, a et b ne peuvent &#234;tre tous les deux nuls.")
	}

	else if (Math.floor(a) != a || Math.floor(b) != b || a<0 || b<0)
	{
	return ("Calcul impossible, a et b doivent &#234;tre des entiers positifs.")
	}

	else

	if ((a !=="") || (b !==""))
	{
	var u=a,v=b,w;
	while (v != 0)
	{
	//w=u-Math.floor(u/v)*v;
	w=u&#37;v;
	PGCDPPCM.etapes.value+=u+"="+v+"x"+Math.floor(u/v)+"+"+w+"\n"
	u=v;
	v=w;

	}
	PGCDPPCM.etapes.value+="Le pgcd de "+a+" et "+b+" est donc "+u+".\n"
	PGCDPPCM.etapes.value+="--------------------------------------------\n"

	}
	var mu;
	mu=(a*b)/u;
	PGCDPPCM.ppcm.value="ppcm("+a+","+b+")="+mu
	return ("pgcd("+a+","+b+")="+u)

	}

	</script>
	
	<form action="halbert.html" method="get" name="PGCDPPCM" accept-charset="utf-8">
		<div>
			<input type="text" name="n1" value="" id="n1" />
			<input type="text" name="n2" value="" id="n2" /><br />
			<textarea name="etapes" id="etapes"></textarea><br />
			<input type="text" name="ppcm" value="" id="ppcm" /><br />
			<input type="button" onclick="pgcd(this.form.n1.value,this.form.n2.value)" value="Calculer">
		</div>
	</form>

&#231;a marche tr&#232;s bien sous safari et firefox ;)
 
Je viens de tester chez moi ton script et ça marche très bien ;)

Bloc de code:
<script type="text/javascript">

    function pgcd(a,b)
    {
    if (a==0 && b==0)
    {
    return ("Calcul impossible, a et b ne peuvent être tous les deux nuls.")
    }

    else if (Math.floor(a) != a || Math.floor(b) != b || a<0 || b<0)
    {
    return ("Calcul impossible, a et b doivent être des entiers positifs.")
    }

    else

    if ((a !=="") || (b !==""))
    {
    var u=a,v=b,w;
    while (v != 0)
    {
    //w=u-Math.floor(u/v)*v;
    w=u%v;
    PGCDPPCM.etapes.value+=u+"="+v+"x"+Math.floor(u/v)+"+"+w+"\n"
    u=v;
    v=w;

    }
    PGCDPPCM.etapes.value+="Le pgcd de "+a+" et "+b+" est donc "+u+".\n"
    PGCDPPCM.etapes.value+="--------------------------------------------\n"

    }
    var mu;
    mu=(a*b)/u;
    PGCDPPCM.ppcm.value="ppcm("+a+","+b+")="+mu
    return ("pgcd("+a+","+b+")="+u)

    }

    </script>
    
    <form action="halbert.html" method="get" name="PGCDPPCM" accept-charset="utf-8">
        <div>
            <input type="text" name="n1" value="" id="n1" />
            <input type="text" name="n2" value="" id="n2" /><br />
            <textarea name="etapes" id="etapes"></textarea><br />
            <input type="text" name="ppcm" value="" id="ppcm" /><br />
            <input type="button" onclick="pgcd(this.form.n1.value,this.form.n2.value)" value="Calculer">
        </div>
    </form>
ça marche très bien sous safari et firefox ;)

Merci d'avoir passé du temps à le tester. D'où peut venir alors le problème ?
 
Je viens de tester chez moi ton script et ça marche très bien ;)

Bloc de code:
<script type="text/javascript">

    function pgcd(a,b)
    {
    if (a==0 && b==0)
    {
    return ("Calcul impossible, a et b ne peuvent être tous les deux nuls.")
    }

    else if (Math.floor(a) != a || Math.floor(b) != b || a<0 || b<0)
    {
    return ("Calcul impossible, a et b doivent être des entiers positifs.")
    }

    else

    if ((a !=="") || (b !==""))
    {
    var u=a,v=b,w;
    while (v != 0)
    {
    //w=u-Math.floor(u/v)*v;
    w=u%v;
    PGCDPPCM.etapes.value+=u+"="+v+"x"+Math.floor(u/v)+"+"+w+"\n"
    u=v;
    v=w;

    }
    PGCDPPCM.etapes.value+="Le pgcd de "+a+" et "+b+" est donc "+u+".\n"
    PGCDPPCM.etapes.value+="--------------------------------------------\n"

    }
    var mu;
    mu=(a*b)/u;
    PGCDPPCM.ppcm.value="ppcm("+a+","+b+")="+mu
    return ("pgcd("+a+","+b+")="+u)

    }

    </script>
    
    <form action="halbert.html" method="get" name="PGCDPPCM" accept-charset="utf-8">
        <div>
            <input type="text" name="n1" value="" id="n1" />
            <input type="text" name="n2" value="" id="n2" /><br />
            <textarea name="etapes" id="etapes"></textarea><br />
            <input type="text" name="ppcm" value="" id="ppcm" /><br />
            <input type="button" onclick="pgcd(this.form.n1.value,this.form.n2.value)" value="Calculer">
        </div>
    </form>
ça marche très bien sous safari et firefox ;)

je ne vois pas où ça cloche : safari ok, firefox rien sauf les message d'erreur dans les cas 0 et 0 par, ce qui prouve que programme est bien applelé