Reputation: 23
I created an html page with a form that returns a function to calculate the gravitational force between two planets.
The program works as I want but when I ask it to display the result in an html tag it doesn't work. And sorry for my English, I'm a French student
function formulaire(){
var masse1 = document.getElementById("masse1").value;
var masse2 = document.getElementById("masse2").value;
var d = document.getElementById("distance").value;
var distancePlanete = Math.pow(d, 2);
var G = 6.67428* Math.pow(10,-11);
var resultat = G*(masse1 * masse2)/distancePlanete;
document.getElementById("print").innerHTML = resultat;
}
<body>
<h1 id="titrecalcul">Le calcul:</h1>
<form method="post" id="audd">
<label for="masse1" id="styleTxMasse1">Masse planète 1 en kg</label> : <input type="number" id="masse1" step="0.00000000" min="0.00000000">
<br><br>
<label for="masse2" id="styleTxMasse2">Masse planète 2 en kg</label> : <input type="number" id="masse2" step="0.00000000" min="0.00000000">
<br><br>
<label for="distance" id="styleTxDistance">Distance entre les deux planètes en km</label> : <input type="number" id="distance" step="0.00000000" min="0.00000000">
<br><br>
<input type="submit" value="Calculer" onclick="formulaire()">
</form>
<div id="print"></div>
<script src="script/script.js"></script>
</body>
Upvotes: 0
Views: 102
Reputation: 4005
Or Use return
statement:
function formulaire(){
var masse1 = document.getElementById("masse1").value;
var masse2 = document.getElementById("masse2").value;
var d = document.getElementById("distance").value;
var distancePlanete = Math.pow(d, 2);
var G = 6.67428* Math.pow(10,-11);
var resultat = G*(masse1 * masse2)/distancePlanete;
document.getElementById("print").innerHTML = resultat;
return false;
}
<body>
<h1 id="titrecalcul">Le calcul:</h1>
<form method="post" id="audd" onsubmit="return formulaire()">
<label for="masse1" id="styleTxMasse1">Masse planète 1 en kg</label> : <input type="number" id="masse1" step="0.00000000" min="0.00000000">
<br><br>
<label for="masse2" id="styleTxMasse2">Masse planète 2 en kg</label> : <input type="number" id="masse2" step="0.00000000" min="0.00000000">
<br><br>
<label for="distance" id="styleTxDistance">Distance entre les deux planètes en km</label> : <input type="number" id="distance" step="0.00000000" min="0.00000000">
<br><br>
<input type="submit" value="Calculer" onclick="formulaire()">
</form>
<div id="print"></div>
<script src="script/script.js"></script>
</body>
Upvotes: 0
Reputation: 323
function formulaire(){
var masse1 = document.getElementById("masse1").value;
var masse2 = document.getElementById("masse2").value;
var d = document.getElementById("distance").value;
var distancePlanete = Math.pow(d, 2);
var G = 6.67428* Math.pow(10,-11);
var resultat = G*(masse1 * masse2)/distancePlanete;
document.getElementById("print").innerHTML = resultat;
document.getElementById("masse1").innerHTML ="";
document.getElementById("masse2").innerHTML ="";
document.getElementById("distance").innerHTML ="";
}
<body>
<h1 id="titrecalcul">Le calcul:</h1>
<div id="audd">
<label for="masse1" id="styleTxMasse1">Masse planète 1 en kg</label> : <input type="number" id="masse1" step="0.00000000" min="0.00000000">
<br><br>
<label for="masse2" id="styleTxMasse2">Masse planète 2 en kg</label> : <input type="number" id="masse2" step="0.00000000" min="0.00000000">
<br><br>
<label for="distance" id="styleTxDistance">Distance entre les deux planètes en km</label> : <input type="number" id="distance" step="0.00000000" min="0.00000000">
<br><br>
<button onclick="formulaire()">Calculer</button>
</div>
<div id="print"></div>
Instead of writing it in html form format, use pure JavaScript instead:
function formulaire(){
var masse1 = document.getElementById("masse1").value;
var masse2 = document.getElementById("masse2").value;
var d = document.getElementById("distance").value;
var distancePlanete = Math.pow(d, 2);
var G = 6.67428* Math.pow(10,-11);
var resultat = G*(masse1 * masse2)/distancePlanete;
document.getElementById("print").innerHTML = resultat;
document.getElementById("masse1").innerHTML ="";
document.getElementById("masse2").innerHTML ="";
document.getElementById("distance").innerHTML ="";
}
<body>
<h1 id="titrecalcul">Le calcul:</h1>
<div id="audd">
<label for="masse1" id="styleTxMasse1">Masse planète 1 en kg</label> : <input type="number" id="masse1" step="0.00000000" min="0.00000000">
<br><br>
<label for="masse2" id="styleTxMasse2">Masse planète 2 en kg</label> : <input type="number" id="masse2" step="0.00000000" min="0.00000000">
<br><br>
<label for="distance" id="styleTxDistance">Distance entre les deux planètes en km</label> : <input type="number" id="distance" step="0.00000000" min="0.00000000">
<br><br>
<button onclick="formulaire()">Calculer</button>
</div>
<div id="print"></div>
<script src="script/script.js"></script>
Upvotes: 0
Reputation: 1756
You have to prevent the form from submitting and redirecting. Try this:
function formulaire(event){
event.preventDefault();
var masse1 = document.getElementById("masse1").value;
var masse2 = document.getElementById("masse2").value;
var d = document.getElementById("distance").value;
var distancePlanete = Math.pow(d, 2);
var G = 6.67428* Math.pow(10,-11);
var resultat = G*(masse1 * masse2)/distancePlanete;
document.getElementById("print").innerHTML = resultat;
}
<body>
<h1 id="titrecalcul">Le calcul:</h1>
<form method="post" id="audd">
<label for="masse1" id="styleTxMasse1">Masse planète 1 en kg</label> : <input type="number" id="masse1" step="0.00000000" min="0.00000000">
<br><br>
<label for="masse2" id="styleTxMasse2">Masse planète 2 en kg</label> : <input type="number" id="masse2" step="0.00000000" min="0.00000000">
<br><br>
<label for="distance" id="styleTxDistance">Distance entre les deux planètes en km</label> : <input type="number" id="distance" step="0.00000000" min="0.00000000">
<br><br>
<input type="submit" value="Calculer" onclick="formulaire(event)">
</form>
<div id="print"></div>
<script src="script/script.js"></script>
</body>
Upvotes: 5