【问题标题】:If.-Value in a for loop: adding selectedif.-for 循环中的值:添加选定的
【发布时间】:2019-03-03 03:56:39
【问题描述】:

想要在我的 Django-Project 中将属性“selected”添加到这个选择字段:

<form id="formselect" method="post">
  {% csrf_token %}
    <select name="position_select" id="position_select">
    <option value="0">all positions</option>
    {% for position in position_options %}
    <option value="{{ position.id }}"
    {% if form.position.value == position.id.0 %} selected{% endif %}>
    Position: {{ position.position_order }}
  </option>
  {% endfor %}
</select>

使用这种 if 方法的结果是,现在每个选项在该 HTML 的输出中都被标记为选中。有没有更好的方法来处理 for 循环中的 if 语句?

我在每次点击时提交此表单:

$("#position_select").on("change", function() {
    document.getElementById("formselect").submit();
  });

【问题讨论】:

  • 如果你说全部被选中,那么你的条件 form.position value == position.id.0 永远为真。这意味着您的 if 条件需要更新。
  • 您能否更具体地解释一下“更新”的含义?
  • 我的意思是,为什么你的 if 语句对于每次迭代都是正确的?

标签: html django for-loop if-statement


【解决方案1】:

你可以试试这样的:

{% for position in position_options %}
{% if form.position.value == position.id.0 %}
    <option value="{{ position.id }}" selected>
{% else %}
    <option value="{{ position.id }}" selected>
{% endif %}

或者:

<option value="{{ position.id }}" {{ form.position.value == position.id.0 ? "selected" : "" }}>

【讨论】:

    猜你喜欢
    • 2019-12-20
    • 2021-11-01
    • 2021-07-30
    • 2017-02-19
    • 1970-01-01
    • 1970-01-01
    • 2017-06-17
    • 2019-06-27
    • 2020-02-24
    相关资源
    最近更新 更多