从输入中获取变量

时间:2016-12-01 11:26:18

标签: javascript html

<input id="inp"></input>
<button type="button" onclick="fibbon();">Submit!</button>
<p id="JS"></p>

        <script>
            var n = document.getElementById("inp").value;
            var fibbon = function(n){
                if ((n===1) || (n===2)){
                    return 1;
                }
                else{
                    return fibbon(n-1)+fibbon(n-2);
                }
                document.getElementById("JS").innerHTML = fibbon;
            };

        </script>

我正在尝试使用输入,但是当我输入数字时它不会显示数字

3 个答案:

答案 0 :(得分:2)

我认为你正在寻找类似的东西......

 <input id="inp"></input>
 <button type="button" onclick="callFibbon();">Submit!</button>
 <p id="JS"></p>

<script>
    function callFibbon(){
       var n = document.getElementById("inp").value;
       if(isNaN(n)){
          alert("Not a valid number");
          return false;
       }
       var val = fibbon(Number(n));
       document.getElementById("JS").innerHTML = val;
    }
    var fibbon = function(n){                
        if ((n===1) || (n===2)){
            return 1;
        }
        else if(n>2){
            return fibbon(n-1)+fibbon(n-2);
        }                
    }
</script>

输入:

1 ---结果是:1

2 ---结果是:1

3 ---结果是:2

12 ----结果是:144

答案 1 :(得分:-1)

你需要转换为数字,你可能要调用fibbon函数传递值作为参数,希望下面的函数可以帮助:

    <script>
        var n = document.getElementById("inp").value;
        var fibbon = function(n){                
            if ((n===1) || (n===2)){
                return 1;
            }
            else{
                return fibbon(n-1)+fibbon(n-2);
            }                
        };
        document.getElementById("JS").innerHTML = fibbon(+n);
    </script>

答案 2 :(得分:-2)

默认情况下,输入值是字符串。您需要将其转换为数字。

var fibbon = function(nString){
                    var n = Number(nString);
                    if(n==NaN){
                        alert("Not A Number");
                        return false;
                    }
                    if ((n===1) || (n===2)){
                        return 1;
                    }
                    else{
                        return fibbon(n-1)+fibbon(n-2);
                    }
                    document.getElementById("JS").innerHTML = fibbon;
                };