#javascript #asp.net-mvc
#javascript #asp.net-mvc
Вопрос:
У меня есть очень простой JS-код для выполнения в моем представлении модели:
Просмотр (я показываю основную часть, в которую включен ‘id’):
@model IEnumerable<XYZ.Models.DocumentsModel>
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
<tr>
<td>
<select id="decisionList">
<option value="0" selected></option>
<option value="1">None</option>
<option value="2">Cancellation</option>
<option value="3">Payment date</option>
<option value="4">Manual date</option>
<option value="5">No date</option>
</select>
</td>
</tr>
<script src="~/Content/Site.js"></script>
и JS:
var decisionList = document.getElementById("decisionList");
decisionList.addEventListener("change", function () {
var selectedOptionIndex = decisionList.options[decisionList.selectedIndex].index;
alert(selectedOptionIndex); // no alert pops-up when changing the option on a list
console.log(selectedOptionIndex); //no logs in a console at all
});
и JS вообще не работает, мой выбранный список не реагирует. Я пробовал даже другие более простые коды в моем JS-файле, но и это не работает. Я думаю, что я правильно прикрепил. Я также пытался добавить в _Layout.cshtml, но это также не помогло (я прикрепил ссылки в разделе head моего _Layout, чтобы все было сделано правильно). Что с ним не так?
Комментарии:
1. Загружается ли ваш файл скрипта? Поставьте предупреждение в качестве самой первой команды скрипта. Если он не запускается, ваш скрипт не загружается.
2. Я попробовал это, и да, он загружается и появляется всплывающее предупреждение. Может быть, что-то не так с моим кодом? addEventListener не работает вообще
3. Убедитесь
var decisionList
, что значение не определено, и в вашем HTML должен быть только один экземплярdecisionList
4. Хорошо, понял.
var decisionList = document.getElementById("decisionList");
относится только к первому выбранному списку, у меня около 100 строк, в каждой — этот выбранный список. ИспользованиеgetElementsByClassName
— лучший вариант?5. Вы хотите сказать, что у вас более одного элемента с одинаковым
decisionList
идентификатором? Если да, то да, вы не должны этого делать. Идентификатор должен быть уникальным на всей странице. И если вы подключаете к нему слушателя, вам, вероятно, не следует делать это с помощью class , так как у каждого элемента с этим классом будет один и тот же слушатель … вероятно, это не то, что вы намереваетесь.