Поясняю. Я взял твой код, и целиком вставил его в ДримВивер 8. А он в тех строках, где был двойной value, не сделал цветовую раскраску
Я стал искать, и нашел причину. При удалении лишнего value всё стало сразу же нормально. То есть, с двойным value редактор просто не понимал, где что находится.
Далее. Учитывая, что ДримВивер ну очень хорошо продуманная система, делаем вывод: какой-нибудь браузер также может не понять, что тут. Тот факт, что у тебя работало ранее, ни о чем не говорит. Потому что это могло быть в твоем браузере. Но в другом браузере всё могла бы быть по-другому.
Короче говоря
Если есть неоднозначность, ее надо устранить.
PS. А вот пример разной работы браузеров. Из личной практики.
Делаю текстовое поле. Пишу для него name, но забываю про id. В процессе работы идет обращение через функцию JS document.getElementById(...).
И вот Опера, в которой я обычно тестирую, всё воспринимает нормально!!! Т.е. при наличии name и отсутствии id предполагает, что id равен name. А в ИЭ, как оказалось, нужно всё указать в явном виде.
Спасибо одному юзеру
Он не просто указал на ошибку (не срабатывала фича), но и назвал ее причину.