Je veux faire un script qui prend le nombre inséré et utiliser la série fibonacci pour afficher tous les nombres jusqu'à ce nombre spécifique.

Donc j'ai déjà le code fibonacci, mais je n'arrive pas à écrire le script correctement donc il prendra le numéro inséré. Lorsque j'utilise le code fibonacci du console.log, cela fonctionne parfaitement.

Ceci est le script

  var n =$("#num").val();
  $('#shw').click(function(){
      function fibonacci(n){
          var a,b,result;
          a=0;
          b=1;
          result=b;
          for(var i=1; i<n; i++)
          {
              document.write(result+" " );
              result=a+b;
              a=b;
              b=result;
          };
      };
  });
  
 Please Enter Number: <input type="number" id="num" name="num"> <button name="shw" id="shw">Submit</button>
    

Je ne peux pas prendre la valeur insérée et montrer la série des fibonacci jusqu'à ce nième nombre. Le bouton ne fait rien.

0
Guy Sidon 27 janv. 2019 à 21:08

4 réponses

Meilleure réponse

Vous devez lire la valeur de l'entrée dans l'écouteur pour l'événement click et éventuellement appeler le fibonacci() avec cette valeur. J'ai réorganisé votre code pour cela:

function fibonacci(n)
{
    var a = 0, b = 1, result = 1;

    for (var i = 1; i < n; i++)
    {
        document.write(result + " ");
        result = a + b;
        a = b;
        b = result;
    }
}

$('#shw').click(function()
{
    var n =$("#num").val();
    fibonacci(n);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Please Enter Number: <input type="number" id="num" name="num">
<button name="shw" id="shw">Submit</button>
1
Shidersz 27 janv. 2019 à 18:15

Déplacez votre n vers la fonction interne et appelez également fibonacci. Dans votre code, vous définissez simplement fibonacci mais ne l'appelez pas.

Eh bien, une meilleure option est d'affecter directement fibonacci à l'événement click.

$('#shw').click(function(){
  var n =$("#num").val();
  function fibonacci(n){
  var a=0,b=1,result=1;
    for(var i=1; i<n; i++){
      document.write(result+" " );
      result=a+b;
      a=b;
      b=result;
    };
};
fibonacci(n)
});
<script src="https://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60=" crossorigin="anonymous"></script>
<body>
Please Enter Number: <input type="number" id="num" name="num"> <button name="shw" id="shw">Submit</button>
</body>
0
Code Maniac 27 janv. 2019 à 18:22

Récupérez votre numéro n après avoir cliqué sur le bouton!

var btn = $('#shw');
var input = $("#num");

function fibonacci(n) {
  var a, b, result;
  a = 0;
  b = 1;
  result = b;
  for (var i = 1; i < n; i++) {
    document.write(result + " ");
    result = a + b;
    a = b;
    b = result;
  };
};

btn.click(function(){
  fibonacci(input.val());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Please Enter Number: 
<input type="number" id="num" name="num"> <button name="shw" id="shw">Submit</button>
0
Daniel Sixl 27 janv. 2019 à 18:25

Déplacez votre var n dans la fonction de clic. Sinon, n est attribué avant que l'utilisateur n'entre une entrée

<script>
    $('#shw').click(function(){
        function fibonacci(){
            var a,b,result;
            var n =$("#num").val();
            a=0;
            b=1;
            result=b;
            for(var i=1; i<n; i++)
            {
                document.write(result+" " );
                result=a+b;
                a=b;
                b=result;
            };
        };
    });
</script>
0
Matthew Page 27 janv. 2019 à 18:12