Проверьте это:
<select id="foo">
<option value="bar">bar</option>
<option value="baz">baz</option>
<option value="bork">bork</option>
</select>
<script type="text/javascript">
var selectElem = document.getElementById('foo');
selectElem.value = 'baz';
</script>
Установка значения элемента select исправляет это.
Firefox понимает это правильно, даже если вы просто используете содержимое тегов в качестве значений (вместо указания значения в атрибуте значения параметра). Не уверен насчет других браузеров.
РЕДАКТИРОВАТЬ, больше материала:
То есть есть какой-то другой выбор (или эквивалент), который обновляется некоторой гармонизирующей функцией при изменении первого выбора?
Здесь у меня есть это в первом выборе onchange
. Когда выбранный элемент устанавливается с помощью этой техники «установки значения», onchange
не срабатывает. Тем не менее, можно вызвать функцию гармонизации вручную при изменении первого выбора. Ниже я показываю два разных способа (оба в комментариях).
<select id="foo" onchange="harmonize();">
<option value="bar">bar</option>
<option value="baz">baz</option>
<option>bork</option>
</select>
<select id="foo2">
<option value="0">This</option>
<option value="1">That</option>
</select>
<script type="text/javascript">
var select0 = document.getElementById('foo');
var select1 = document.getElementById('foo2');
select0.value = 'baz';
// alternative 1: call harmonize();
// alternative 2: call select0.onchange();
function harmonize() {
if (select0.value==='baz') {
select1.value = '1';
}
else {
select1.value = '0';
}
}
</script>
Я не стал прятать здесь глобальные переменные и т. Д., Но, конечно, это хорошая идея.