我对这个非常小的代码有一个奇怪的问题:
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>
选择了一个选择的“他者”的值时至极创建的文本输入。这工作得很好。但是,当我再次改变的价值,我得到一个奇怪的错误:对象不是一个函数..
任何的想法 ?..
编辑:问题是因为ceakki提到了函数的名称。谢谢!谢谢大家的帮助
更改autre()函数或新创建的元素<input name =“ autre” ... />的名称。
似乎IE9将<input name =“ autre” ... />的名称autre附加到当前的Window对象(或全局对象)。
在这种情况下,autre将引用新创建的元素,而不是您的函数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句