Проблема: код на Javascript упорно отказывался находить вхождение подстроки в строке. Метод string.indexOf(substring) всегда возвращал -1, что означает отсутствие вхождения.
Работа над ошибкой:
Javascript код заведомо не содержал ошибок. На html странице был элемент управления <select> с несколькими значениями. В зависимости от выбранного значения должно было выдаваться то или иное сообщение.
Html-код элемента управления:
<select id="chooseCover" name="typeCover">
<option value="мягкая обложка">мягкая обложка</option>
<option value="твердая обложка">твердая обложка</option>
<option value="не требуется">не требуется</option>
</select>
Код Javascript по обработке:
$(document).ready(function () {
$('#chooseCover').on('change', function () {
var selectedItem = $(this).val();
if (selectedItem.indexOf('обложка') >= 0) {
alert('Yes');
}
else {
alert('No');
}
})
});
Решение:
Проблема скрылась на уровне кодировки файлов. Так получилось, что js файл я не создавал в рамках проекта, а скопировал заготовку из репозитория. Кодировка html-файла была UTF-8, а Javascript'а – ANSI. Это можно увидеть, например, попытавшись сохранить файл в блокноте (Notepad) (Рис.1).
Для исправления нужно было привести файлы к одной кодировке. Я пересохранил JS файл в кодировке UTF8 в том же блокноте.


