在JS中获取“xxx不是函数”

时间:2011-05-31 09:59:23

标签: javascript html

这是我尝试在Firefox上运行的一些代码:

    <html>



    <head>


        <title>Ex4: My Sequence Finder</title>

        <script type="text/javascript">

        function action() {
            alert("action");
                if (formValidation() == false)
                    return;
        }

        function searchInput() {
            alert("searchInput");
            return;

        }


        </script>



    </head>



<body>



    <font face="arial" size="5" color="blue">Input section</font> <br/>

    <p>Query Sequence</p>

    <form name="form">

    <textarea id="input" rows="8" cols="60"></textarea><br/>

    <textarea id="enhancers" rows="4" cols="30"></textarea><br/>

    <textarea id="silencers" rows="4" cols="30"></textarea><br/>
    <input type="button" value="button1" onclick="action()" />
    <input type="button" value="button2" onclick="searchInput()" />

    <div id="results"></div>

    </form>



</body>



</html>

正如你可以看到其中一个按钮调用searchInput()并且工作正常,另一个 应该调用action(),但我得到“action()不是函数”。顺便说一下,他们现在都只调用alert(),所以我知道它已经进入了函数。

我不知道为什么会这样,任何帮助都会很棒。 谢谢!

3 个答案:

答案 0 :(得分:2)

表单元素具有action属性(指定应处理表单数据的URI)。

此属性名称“覆盖”javascript函数名称,导致您看到的错误。

将您的功能重命名为其他内容,它将起作用。

答案 1 :(得分:1)

您可以使用

解决此问题
var function1 =new function(){
          var action=new  function() {
                alert("action");
                    if (formValidation() == false)
                        return;
            }
    }
<input type="button" value="button1" onclick="function1.action()" />

答案 2 :(得分:0)

action调用formValidation,这似乎不是一个功能。也许解析器接受了这个错误并且因为它而没有选择te register action作为函数。