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

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>


当选择一个选择的'autre'值时,会创建一个输入文本。这很好。

任何的想法 ?..

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

最佳答案

更改autre()函数或新创建的元素的名称。

似乎IE9将的名称autre附加到当前的Window对象(或全局对象)。

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

09-06 04:29