Я создал форму, которая содержит эмулированное выпадающее меню с вложенными выпадающими окнами, созданными с помощью цикла foreach через @Model.Когда я нажимаю на одно из моих, я хочу, чтобы значение моего скрытого поля ввода равнялось идентификатору данных нажатой кнопки
То, что я получил до сих пор - HTML
<form id="myForm" method="post">
@Html.HiddenFor(x => x.User);
<div class="yourstats" id= "yourstats">
<h3>Your Stats</h3>
</div>
<div class="dropdown">
<div class="yourteam">
<h3>Teams</h3>
</div>
<div class="dropdown-content">
<div class="dropdown-submenu">
<a class="test" tabindex="-1" href="#">Team 1 <span class="caret"></span></a>
<div id='Team1' class="dropdown-menu">
@foreach (var member in Model.Team1Members)
{
<a href="#" data-id="@member.Key">@member.Value</a>
}
</div>
</div>
<div class="dropdown-submenu">
<a class="test" tabindex="-1" href="#">Team2 <span class="caret"></span></a>
<div id='Team2' class="dropdown-menu">
@foreach (var member in Model.Team2Members)
{
<a href="#" data-id="@member.Key">@member.Value</a>
}
</div>
</div>
</form>
Thisэто функция, которую я пытаюсь использовать, чтобы получить dataid от нажатой кнопки и поместить его в скрытый ввод.Он отлично работает, когда я жестко кодирую идентификатор данных в целях тестирования, например:
`$(".dropdown a").on("click", () => {
var $value = 7909
$('#User').val($value)
$('#myForm').submit()
});`
, но я не могу заставить его работать без жестко заданного значения
`$(".dropdown a").on("click", () => {
var $value = $(".dropdown a").data("id")
$('#User').val($value)
$('#myForm').submit()
});`
Chrome dev tools говоритмне, что когда я использую жестко закодированные значения, я посылаю правильный ID = 7909 на сервер.Но когда я пытаюсь использовать свою реальную функцию, я не посылаю никаких данных на сервер.Так что это означает, что проблема в этой части кода, верно?
`$(".dropdown a").data("id")`
Я очень хорошо посмотрел на другие вопросы, которые касались выбора идентификатора данных или обновления значения скрытого ввода,и они сообщили мою работу до сих пор, но не играли в кости.Я уверен, что я делаю что-то очень простое неправильно, кто-нибудь может сказать мне, что это такое?
РЕДАКТИРОВАТЬ: Я также пытался
`$('.dropdown a').attr('data-id')`
и
`$('.dropdown a').data('data-id')`
без везения и с той же ошибкой.