Javascript:错误,对象不是函数

时间:2013-12-05 12:53:22

标签: javascript function object

我对这个非常小的代码有一个奇怪的问题:

function autre(element)
{
    if (element.value=="autre") 
    {
        var inputText=document.createElement("input");
        inputText.setAttribute("type", "text");
        inputText.setAttribute("name", "autre");
        inputText.setAttribute("required", "");
        element.parentNode.appendChild(inputText);      
    }
    else element.parentNode.removeChild(element.nextSibling);
}

和HTML

<select name="matiere" onchange="autre(this);">
    <option value="autre">Autre</option>
    <option value="...">Some others options</option>
</select>

选择select的'autre'值时创建输入文本..这样可以正常工作..但是当我再次更改该值时,我得到一个奇怪的错误:对象不是函数..

有什么想法吗?..

编辑:问题是因为ceakki提到了该功能的名称。谢谢! 谢谢大家的帮助

2 个答案:

答案 0 :(得分:2)

更改 autre()功能或新创建元素的名称&lt; input name =“autre”... />.

IE9似乎附加&lt; input name =“autre”的名称 autre ... /&gt;到当前的Window对象(或全局对象)。

在这种情况下, autre 将引用新创建的元素,而不是您的函数。

答案 1 :(得分:1)

该脚本适用于我http://jsfiddle.net/J7acJ/

刚添加了eventListener

document.querySelector("select").addEventListener('change', function(){
    autre(this);
})