Короткий ответ: Нет, вам не нужно иметь поле выбора в форме.
Куда в данный момент находится ваш JavaScript в отношении тега body
в вашем HTML? Помните, что если у вас встроенный JavaScript включен в голову, если ваша страница, то он будет срабатывать при загрузке страницы. На этом этапе поле выбора не будет проанализировано, и, таким образом, ваш код не сможет получить к нему доступ, чтобы отключить его.
Я не поклонник смешивания JavaScript и разметки вместе, но эта демонстрация должна работать во всех смыслах и целях.
<html>
<head>
<title>JavaScript Select Demo</title>
</head>
<body>
<select id="mySelect" onchange="updateChoice();">
<option value="1">First</option>
<option value="2" selected="">Second</option>
</select>
</body>
<script type="text/javascript">
document.getElementById('mySelect').disabled = true;
</script>
</html>
Если по какой-либо причине, вы должны иметь сценарий, расположенный на странице, а не внешний файл, вы можете настроить обработчик событий для выполнения той же функции после загрузки страницы. Вместо того, чтобы держать код в нижней части разметки, вы можете включить это в голове узле:
<head>
<title>JavaScript Select Demo</title>
<script type="text/javascript">
window.onload = function() {
document.getElementById('mySelect').disabled = true; ;
}
</script>
</head>
Наконец, а не включать в onchange
обработчик в атрибутах разметки, можно альтернативно настроить обработчик события в ваш JavaScript для выполнения такого же поведения. jQuery makes this really easy.