【问题标题】:Displaying certain categories based on certain input根据特定输入显示特定类别
【发布时间】:2021-12-21 14:25:34
【问题描述】:

这个代码是一个表单,我可以输入信息来创建一些东西。我的问题是我这个表单根据用户输入显示某些部分,但我不知道该怎么做。例如,对于“位置类型”部分,如果我单击“原始”,我希望仅显示“信息”部分,如果单击“交叉/现实”,则我希望仅显示“链接”部分。有人可以帮忙吗? HTML 代码:

<form method="post">             
              <div class="form-group">
                <label>Type of Location</label>
                <select name="locationtype" class="form-control" required>
                    <option>Select one</option>
                    <option>Original</option>
                    <option>Crossover/Realistic</option>
                </select>
              </div>
              <div class="form-group">
                <label>Picture ID</label>
                     <select name="pictureid" class="form-control" required>
                                <option>Select one</option>
                                {% for x in pictures %}
                                    <option value="{{x.pictureid}}">{{x.picturename}}</option>
                                {% endfor %}
                            </select>
              </div>
              <div class="form-group">
                    <label>Information</label>
                         <textarea name="information" class="form-control" style="color: black">{{ location.information }}</textarea>
                </div>
              <div class="form-group">
                <label> Link</label>
                <input type="text" name="link" class="form-control" value="{{ location.link }}" required>
              </div>

</form>

【问题讨论】:

  • 这不是有效的 HTML。
  • 这些{% for x in pictures %} 代表什么?这是什么语言?您将需要另一种语言,例如 javascript,例如获取用户输入并将其显示在页面上。
  • 请以任何一种方式发布有效代码 - 寻找错字可能会很麻烦。 “我不知道该怎么做,请为我编写代码” 并不是我们在这里真正要做的。你试过什么?请参阅Help Center。请只发布相关部分。

标签: html


【解决方案1】:

$("#locationtype").change(function (e) {
    if ($(this).val().toLowerCase() == "original") {
        $(".dynamic-block").hide();
        $("#informationBlock").show();
    }
    else if ($(this).val().toLowerCase() == "crossover/realistic") {
        $(".dynamic-block").hide();
        $("#linkBlock").show();
    }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form method="post">
    <div class="form-group">
        <label>Type of Location</label>
        <select id="locationtype" name="locationtype" class="form-control" required>
            <option>Select one</option>
            <option>Original</option>
            <option>Crossover/Realistic</option>
        </select>
    </div>
    <div class="form-group">
        <label>Picture ID</label>
        <select name="pictureid" class="form-control" required>
            <option>Select one</option>
            {% for x in pictures %}
            <option value="{{x.pictureid}}">{{x.picturename}}</option>
            {% endfor %}
        </select>
    </div>
    <div class="form-group dynamic-block" id="informationBlock" style="display: none;">
        <label>Information</label>
        <textarea name="information" class="form-control" style="color: black">{{ location.information }}</textarea>
    </div>
    <div class="form-group dynamic-block" id="linkBlock" style="display: none;">
        <label> Link</label>
        <input type="text" name="link" class="form-control" value="{{ location.link }}" required>
    </div>
</form>

【讨论】:

  • 好的,现在在这些类别中输入的信息是表格的一部分;这将更新放入表中的信息,那么我如何将其修改为此行为适用于表中无限数量的条目的位置?
  • 我认为您的问题不清楚。
  • 此表单使用上面列出的信息更新表格中的各个条目。我的问题是如何将其修改为表中多个条目的位置?我问的是 javascript 部分。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多