onSubmit表单方法的问题

时间:2012-09-10 22:56:56

标签: javascript onclick

所以我试图在Javascript中制作一个简单的Fibonacci生成器,但它似乎不起作用!我在我的浏览器(Chrome)以及JSFiddle中都尝试过它,但仍无法正常工作。任何人都知道这里发生了什么?似乎它甚至没有进入该功能,因为没有弹出警报。

<html>
    <head>
        <script type='text/javascript'>

function fib()
{
    alert('In fib function');
    var c = parseInt(document.getElementById('f').value, 10);
    var o = document.getElementById('o');

    var x = 0;
    var y = 1;
    var z = 0;

    for (i = 0; i < 0; i++)
    {
        o.innerHTML += '\n' + x;
        z = x + y;
        x = y;
        y = z;
    }
    return false;
}​

        </script>

    </head>
    <body>
        <form onsubmit='return fib()'>
            <input id='f' type='text'></input>
            <input type='button' value='Submit' onClick='return fib()'
        <pre id='o'></pre>
    </body>
</html>

4 个答案:

答案 0 :(得分:0)

  1. input元素不应包含结束标记。该元素是“自包含的”,基本上应该写为<input.../><input...>
  2. 第二个输入元素未关闭。 >应添加到最后。

  3. for (i = 0; i < 0; i++) {

  4. 此循环不会执行,因为如果您最初将i设置为0并从那里开始递增,{{1}}永远不会小于0。

    以下是修订版 - http://jsfiddle.net/wrg8Z/

答案 1 :(得分:0)

您的代码存在两个问题。首先,正如大卫指出的那样,你实际上不会打印任何数字,因为循环永远不会执行。其次,您忘记关闭使用<input>标记的第一个<pre>标记,这是您尝试提供输出的位置。通过工作输出看到这个更新的小提琴:

http://jsfiddle.net/6neQU/

答案 2 :(得分:0)

正如大卫所说,因为增量条件无效,所以for循环你不会工作。当i = 0时;并且你说“增加直到它小于0”这是不会发生的。

答案 3 :(得分:0)

在您的代码中:

> function fib() {
>     alert('In fib function');
>     var c = parseInt(document.getElementById('f').value, 10);

c未使用。

>     var o = document.getElementById('o');
> 
>     var x = 0;
>     var y = 1;
>     var z = 0;
> 
>     for (i = 0; i < 0; i++)

i未声明,因此在达到此行时变为全局。您正在从0迭代到0,因此循环永远不会执行。

相关问题