Почему имя функции JS конфликтует с идентификатором элемента?
У меня есть две почти одинаковые простые JS-скрипты, вызывающие функцию при изменении выбора. Имя функции совпадает с идентификатором выбора в обоих случаях, но по какой-то причине первая скрипка работает просто отлично, а вторая не работает с ошибкой JavaScriptis not a function
:
http://jsfiddle.net/AZkfy/7/ - отлично работает в FF9 (Linux), Chromium 16 (Linux), IE8 (Windows):
<script>
function border(border) { alert(border); }
</script>
<select id='border' name='border' onchange='border(this.value)'>
<option value='foo'>foo</option>
<option value='bar'>bar</option>
</select>
а также
http://jsfiddle.net/cYVzk/ - происходит сбой в FF9 (Linux), Chromium 16 (Linux), IE8 (Windows):
<script>
function border(border) { alert(border); }
</script>
<form>
<select id='border' name='border' onchange='border(this.value)'>
<option value='foo'>foo</option>
<option value='bar'>bar</option>
</select>
</form>
Первый Я не могу понять, почему первый работает нормально, а второй - нет.
второй - существуют ли какие-либо спецификации или ограничения JS в отношении конфликтующих имен функций JS и идентификатора элемента?