【问题标题】:How to restrict values in dropdown list?如何限制下拉列表中的值?
【发布时间】:2019-10-30 23:50:07
【问题描述】:

我的 JSP 页面中有一个下拉列表,它显示每小时的时段供用户预订某些操作。例如:上午 11 点 - 下午 12 点、下午 12 点 - 下午 1 点等。现在我想检查数据库中的预订时段而且我不希望下一个用户看到已经预订的插槽。

我有一个带有多个选项的选择标签。从 00:00 - 01:00 到 23:00 - 24:00。 我不想显示已经预订的值。

这是我的下拉代码:

<div class="parsley-row" id="display_slot1" style="display:none">                                                           
                                              <select id="slot1" name="slots1" data-md-selectize-delayed>
                                                    <option value="">Slots</option>
                                                             <option value="00:00,01:00">00.00-01.00</option>
                                                             <option value="01:00,02:00">01.00-02.00</option>
                                                             <option value="02:00,03:00">02.00-03.00</option>
                                                             <option value="03:00,04:00">03.00-04.00</option>  
                                                             <option value="04:00,05:00">04.00-05.00</option>   
                                                             <option value="05:00,06:00">05.00-06.00</option>
                                                             <option value="06:00,07:00">06.00-07.00</option>
                                                             <option value="07:00,08:00">07.00-08.00</option>
                                                             <option value="08:00,09:00">08.00-09.00</option>
                                                             <option value="09:00,10:00">09.00-10.00</option>
                                                             <option value="10:00,11:00">10.00-11.00</option>
                                                             <option value="11:00,12:00">11.00-12.00</option>
                                                             <option value="12:00,13:00">12.00-13.00</option> 
                                                             <option value="13:00,14:00">13.00-14.00</option>
                                                             <option value="14:00,15:00">14.00-15.00</option>
                                                             <option value="15:00,16:00">15.00-16.00</option>
                                                             <option value="16:00,17:00">16.00-17.00</option>
                                                             <option value="17:00,18:00">17.00-18.00</option>
                                                             <option value="18:00,19:00">18.00-19.00</option>
                                                             <option value="19:00,20:00">19.00-20.00</option>
                                                             <option value="20:00,21:00">20.00-21.00</option>
                                                             <option value="21:00,22:00">21.00-22.00</option>
                                                             <option value="22:00,23:00">22.00-23.00</option>     
                                                             <option value="23:00,24:00">23.00-24.00</option>                                                                                       
                                                </select> 
                                            </div>

现在我有一个已经预订的插槽列表。现在如何显示除这些之外的所有其他值。

【问题讨论】:

  • 你应该在一个数组列表中生成选项标签服务器端使用的值,并在 JSP 页面中循环这个数组?
  • 如何从该列表中删除已预订的广告位?
  • 看我的回答:-)

标签: java spring jsp select drop-down-menu


【解决方案1】:

在纯 JSP 解决方案中,每次加载页面时都会重新创建选项列表。

这是一个可能的解决方案:

<%@ page import="java.util.Map" %>

<!--
Here I use a class org.myProject.QuerySlots
This class has a method getSlots() to return open slots, as an HashMap, where keys are the values of the option set.

-->
<jsp:useBean id="querySlotsBean" class="org.myProject.QuerySlots" scope="request"/>


<div class="parsley-row" id="display_slot1" style="display:none">
    <select id="slot1" name="slots1" data-md-selectize-delayed>
        <option value="">Slots</option>
        <%
            for (Map.Entry<String,String> entry : querySlotsBean.getSlots().entrySet()){
        %>
        <option value="<%=entry.getKey()%>"><%=entry.getValue()%></option>
        <%
            }
        %>
    </select>
</div>

还有豆子:

package org.myProject;

import java.util.HashMap;

public class QuerySlots {

    public HashMap<String,String> getSlots(){
        // Do a query... Here is an hardcoded value !
        HashMap<String,String> result = new HashMap<>();
        result.put("23:00,24:00","23.00-24.00");
        return result;
    }
}

如果你不想更新现有的选择标签,它更像是一个 Ajax 解决方案,带有 DOM 操作

【讨论】:

  • 我可以查询已经选择的槽位,我不想显示这些槽位
猜你喜欢
  • 2018-10-23
  • 1970-01-01
  • 2021-04-24
  • 2019-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多