У меня есть форма, в которой параметры раскрывающегося меню вводятся в нее из списка dicts. Каждый dict имеет ["символ"] и ["общий доступ"] элемент. Параметры раскрывающегося списка зацикливаются с помощью for l oop.
Я пытаюсь сделать это так, чтобы, когда я выбираю параметр из раскрывающегося меню, максимальное значение следующего поля формы обновляется до соответствующего ["доли"] стоимость.
То, что у меня есть, ниже. Я знаю, что моя функция неверна, но моя проблема в том, что я действительно не знаю, как использовать document.getElementById для доступа к указанному c элементу из моего списка dicts и получения значения «share».
<script type="text/javascript">
function updateMax() {
var select = document.getElementById('symbol').innerText; // symbol selected
const article = document.querySelector('select.val'); // finding article with symbol
var maxi = article.dataset.shares; // getting maximum value
var field = document.getElementById('shares');
field.max = maxi
}
</script>
<form action="/sell" method="post">
<div class="form-group">
<select name="symbol" id="symbol" onchange="updateMax()">
<option disabled selected value="">Symbol</option>
{% for row in portfolio %}
<article>
id="{{ row["symbol"] }}"
shares="{{ row["shares"] }}"
</article>
<option value="row.symbol">{{ row["symbol"] }}</option>
{% endfor %}
</select>
</div>
<div class="form-group">
<input id="shares" autocomplete="off" min="0" max="" name="shares" placeholder="Shares" type="number">
</div>
<button class="btn btn-primary" type="submit">Sell</button>
</form>
Я пробовал следовать инструкциям в комментарии ниже. Я не уверен, что смогу создать внутри l oop, как этот, или какой другой вариант был бы, если я не смогу.
Я ценю любую обратную связь.