11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour et merci pour vos eventuel reponse.Je suis debutant en programation, je fait un site sur les énergies renouvelables avec un formulaire de calcul de dimensionnement d'une installation.on rentre les chiffres dedans , on appuie sur un input de type submit et ça calcul, tout simple.
Le problème que je rencontre c est pour les nombre à virgule, je tape par exemple 8.2 et lorsque j envoi le calcul il se transforme en 8,2 et le code n'abouti pas j ai une bulle a la place qui me dit "valeur incorrect" et dans la console de chrome, rien a signaler.j' ai fait des recherche sur l'ami google et je n'ai pas trouver de réponse.Certain conseil d'utiliser replace(",",".") mais je ne doit pas savoir m'en servir car ca ne fonctionne pas.

j ai réalisé un petit code pour illustrer le problème.

<form id="formulaire">
<label for="test">essai</label><input type="number" name="number1" id="test" />
<label for="test2">essai</label><input type="number" name="number1" id="test2" /> 
<input type="submit" name="submit" id="submit" />
</form> 

<script>
function probleme(){
var nombre1 = document.getElementById("test");
var nombre2 = document.getElementById("test2");
var formu = document.getElementById("formulaire");

var nombre11= parseFloat(nombre1.value);
var nombre22= parseFloat(nombre2.value);

var result = nombre11 * nombre22;

alert(result);}

formu.addEventListener("submit",function(e){
probleme();
e.preventDefault;
},true);
</script>


Quelqu un pourrai t - il m'aider????svp
merci a tous
Modifié par abilify (18 Apr 2012 - 20:27)
ha oui c vrai j ai oublier de préciser même si se n'ai pas vraiment la peine mais mon code est en javascript

aller une ptite réponse svp
Ne serais-tu pas en train de pomper du code ? Le javascript n’est pas du genre à transformer les 8.2 en 8,2 tout seul. Il est fainéant, un peu comme toi avec l’orthographe.
En effet, il faut utiliser la fonction replace.
Ton nombre est converti en chaine de caractère et utilise une virgule au lieu d'un point comme le requière la syntaxe javascript.
var nombre11= parseFloat(nombre1.value.replace(',', '.'))
Smiley fache il a qu à rentrer le code dans son éditeur de texte au lieu de me faire de faux espoir
merci bonne soiree
je viens d'essayer mais rien ne change, j'ai tenter avec chrome et mozillia a tout hazard.
je continue les recherches
ta variable formu est déclarée dans la fonction problème et tu l'appelle en dehors de cette fonction...

essaye ce code :


<form id="formulaire">

<label for="test">essai</label><input type="number" name="number1" id="test" />

<label for="test2">essai</label><input type="number" name="number1" id="test2" /> 

<input type="submit" name="submit" id="submit" />

</form> 


<script>

function probleme(){

var nombre1 = document.getElementById("test");

var nombre2 = document.getElementById("test2");

var formu = document.getElementById("formulaire");



var nombre11= nombre1.value != "" ? parseFloat(nombre1.value) : 0;

var nombre22= nombre2.value != "" ? parseFloat(nombre2.value) : 0;



var result = nombre11 * nombre22;

alert(result);

}


var formulaire = document.getElementById("formulaire");
formulaire.addEventListener("submit",function(e){

probleme();

e.preventDefault;

},true);

</script>
merci de l’intérêt que tu porte a mon problème qualithras , mais j ai tester ce code et le problème n'est malheureusement pas résolu
je m'arrache les cheveux par poignée, le code de mon site fonctionne a merveille mais qu'avec des nombre entier et des que je met une virgule ça plante
je le retourne dans tout les sens, je fait des recherche est rien a faire pourtant quand je voi ce que l'on peu faire avec javascript(enfin moi je débute) je suis étonner de ne pas trouver de réponse a ce problème
En fait il y'a eu une combinaison de deux probèmes, ce coup ci j'ai essayé chez moi et ça marche pour moi,
donc d'une part ta variable formu et le replace de la virgule qui ne se fait pas automatiquement...




<form id="formulaire">
<label for="test">essai</label><input type="number" name="number1" id="test" />
<label for="test2">essai</label><input type="number" name="number1" id="test2" /> 
<input type="submit" name="submit" id="submit" />
</form> 


<script>
function probleme(){
var nombre1 = document.getElementById("test");
var nombre2 = document.getElementById("test2");
var formu = document.getElementById("formulaire");

var nombre11= nombre1.value != "" ? parseFloat(nombre1.value.replace(",",".")) : 0;
var nombre22= nombre2.value != "" ? parseFloat(nombre2.value.replace(",",".")) : 0;

var result = nombre11 * nombre22;
alert(result);
}





var formulaire = document.getElementById("formulaire");

formulaire.addEventListener("submit",function(e){



probleme();



e.preventDefault;



},true);



</script>

Modifié par qualithras (18 Apr 2012 - 14:16)
a écrit :
j'ai essayé chez moi et ça marche pour moi,

ben je met un resolu et un grand merci

j'ai failli ne pas approuver car avec le navigateur que j'utilise le plus a savoir google chrome ca ne veu pas fonctionner mais avec mozilia et epiphany no problem
merci
dailleur je lance un autre sujet histoire de savoir si quelqu un a une idee pour la compatibilite avec chrome