Подтвердить что ты не робот

Зарезервированное слово JavaScript: "preset"

У меня есть форма с выпадающим списком, и мой тег select выглядит так:

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

Сейчас у меня есть функция JavaScript только alert('test');. Ну, когда я меняю свой выбор в раскрывающемся списке, я получаю сообщение об ошибке "preset is not a function". Да, я подтвердил, что это правильно, и я даже сделал общий вызов на загрузку страницы и получил мое предупреждение.

Если я изменю свое имя функции на что-то еще, например presetx, это будет отлично. Поэтому я подумал, что, возможно, "предустановленный" был каким-то зарезервированным словом в JavaScript, но я не могу найти ничего, говорящего как таковое. Почему это произойдет?

Обновление

В настоящее время у меня нет ничего другого на моей тестовой странице, кроме моей формы и функции. Никакие рамки не включают или другой код, поэтому я знаю, что это не так.

4b9b3361

Ответ 1

Некоторые браузеры сопоставляют элементы с атрибутами name для глобальных переменных. Таким образом, <select name='preset' onchange='preset(this);'> фактически создает (в некоторых браузерах) глобальное свойство preset. Это перезаписывает функцию preset.

Так как preset теперь является объектом HTMLSelectElement, а не функцией, вы получаете ошибку "не является функцией".