0

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>

5
  • 2
    I don't see that you're doing anything to stop your form from being submitted and reloading the page, losing all input. Commented Sep 18, 2019 at 15:36
  • 1
    What happens instead, @Quikiki? "Doesn't work" is a very poor description. Commented Sep 18, 2019 at 15:38
  • Any errors in your browser console? Hit F12 to see it. Commented Sep 18, 2019 at 15:39
  • Moved your snippet to the editor assuming that script/script.js is the javascript it would contain, but like j0 pointed out, if you change your button to type="button" it won't clear out like you're seeing because you're not submitting the post. Commented Sep 18, 2019 at 15:42
  • Thanks for your help, I was wondering if you had any sites to offer me to learn javascript and c++ correctly. Commented Sep 18, 2019 at 17:41

3 Answers 3

5

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>

Sign up to request clarification or add additional context in comments.

Comments

0

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>

1 Comment

you're welcome! Javascript is great to use for single page stuff like this IMHO.
0

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>

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.