JavaScript保留字:“预设”

时间:2011-07-03 16:02:47

标签: javascript

我有一个带有选择下拉列表的表单,我的选择标记如下所示:

<select name='preset' onchange='preset(this);'>

现在我的JavaScript函数只有alert('test');。好吧,当我在下拉列表中更改我的选择时,我收到一条错误,说“预设不是功能”。是的,我确认它拼写正确,我甚至在页面加载时对它进行了通用调用并得到了警报。

如果我将我的函数名称更改为其他内容,例如presetx,它就可以了。所以我认为“预设”可能是JavaScript中的某种保留字,但我似乎无法找到任何这样的说法。为什么会这样?

更新

目前我的测试页上没有其他任何内容,除了我的表单和功能。没有框架包含或其他代码,所以我知道它不是那样的。

1 个答案:

答案 0 :(得分:15)

某些浏览器将具有name属性的元素映射到全局变量。所以<select name='preset' onchange='preset(this);'>实际上(在某些浏览器中)创建了一个全局属性preset。这会覆盖preset函数。

由于preset现在是HTMLSelectElement对象,而不是函数,因此会出现“非函数”错误。