Html 具有10000个可能值和序列的下拉列表重要下拉列表与优雅递减 出身背景

Html 具有10000个可能值和序列的下拉列表重要下拉列表与优雅递减 出身背景,html,select,options,graceful-degradation,progressive-enhancement,Html,Select,Options,Graceful Degradation,Progressive Enhancement,我有一个表单,它专门使用javascript搜索~5k条目的供应商,并从他们工厂中填充一个选择下拉列表~10k条目的供应商。现在,它是javascript必需的表单。我想让javascript错误不再导致表单无法使用,但由于条目的数量和条目的顺序性,我没有一种惯用的方法来提供基本的html版本 问题 顺序/层次下拉列表 顺序很重要的下拉列表示例: 这显示了顺序/层次下拉内容的过滤,其中第二个城市下拉列表中的选择根据第一个国家/地区下拉列表中的选择进行过滤。但是如果去掉javascript,它可

我有一个表单,它专门使用javascript搜索~5k条目的供应商,并从他们工厂中填充一个选择下拉列表~10k条目的供应商。现在,它是javascript必需的表单。我想让javascript错误不再导致表单无法使用,但由于条目的数量和条目的顺序性,我没有一种惯用的方法来提供基本的html版本

问题 顺序/层次下拉列表 顺序很重要的下拉列表示例:

这显示了顺序/层次下拉内容的过滤,其中第二个城市下拉列表中的选择根据第一个国家/地区下拉列表中的选择进行过滤。但是如果去掉javascript,它可能会立即变得一团糟。马德里在美国?柏林在法国?序列已损坏

具有大量选项的下拉列表 如果您有一个包含10k个可能选项的select下拉列表,那么使用javascript对其进行过滤/搜索是非常容易的。另一方面,在没有JavaScript的情况下处理这些选项要困难得多

你如何为你的用户提供所有的可能性,而仅仅是加载所有的选项,他们都会炸毁他们的浏览器

可能的解决方案 顺序/分层选择框:

服务器端两部分表单。 ?选择选项组? ??? 选择具有大量选项的选项:

服务器端两部分搜索表单。 与条目名称匹配的服务器端文本搜索。 ???
欢迎提供资源丰富的解决方案的简单链接。

我能想到的唯一解决方案是在每次需要缩小结果范围时使用表单提交。首先显示一个页面以选择供应商的国家/地区。它提交并返回一个页面,该页面以文本形式显示所选国家,现在有一个下拉列表来选择下一个字段,如城市。这样,服务器就可以在每个级别进行过滤

下面是一个JSP示例:

<c:choose>
    <c:when test="${empty country}">
        Country: 
        <form>
            <select>
                <option value="USA">America</option>
                <option value="DEU">Germany</option>
                <%-- ... --%>
            </select>
        </form>
    </c:when>
    <c:otherwise>
        Country: ${country} 
        <c:choose>
            <c:when test="${empty city}">
                <input type="submit" value="Change" />   <%-- Button to change the previous value --%>

                <%-- your form for choosing a supplier's city --%>                    
            </c:when>
            <c:otherwise>
                <%-- continue filtering until you have all of the data --%>
            </c:otherwise>
        </c:choose>

    </c:otherwise>
<c:choose>
选择国家/地区时,表单将提交。您的服务器处理国家/地区,返回带有国家/地区字段值的同一页面,以及下一个下拉列表中可能出现的城市列表。这样做允许您仅依赖表单提交而不是JavaScript来按顺序过滤数据。您的服务器将负责跟踪用户的移动距离。这个解决方案的明显缺点是JSP非常混乱,所有的嵌套块都很混乱。
您还可以尝试一种混合解决方案:当页面加载时,查看您的JavaScript是否已加载。如果是这样的话,用支持AJAX的纯HTML替换提交表单,以填充下一组选项。这样,当JavaScript加载时,您的页面不必刷新很多次,但是如果JavaScript没有加载,页面仍然可以正常工作。只是一个想法。

我能想到的唯一解决方案是在每次需要缩小结果范围时使用表单提交。首先显示一个页面以选择供应商的国家/地区。它提交并返回一个页面,该页面以文本形式显示所选国家,现在有一个下拉列表来选择下一个字段,如城市。这样,服务器就可以在每个级别进行过滤

下面是一个JSP示例:

<c:choose>
    <c:when test="${empty country}">
        Country: 
        <form>
            <select>
                <option value="USA">America</option>
                <option value="DEU">Germany</option>
                <%-- ... --%>
            </select>
        </form>
    </c:when>
    <c:otherwise>
        Country: ${country} 
        <c:choose>
            <c:when test="${empty city}">
                <input type="submit" value="Change" />   <%-- Button to change the previous value --%>

                <%-- your form for choosing a supplier's city --%>                    
            </c:when>
            <c:otherwise>
                <%-- continue filtering until you have all of the data --%>
            </c:otherwise>
        </c:choose>

    </c:otherwise>
<c:choose>
选择国家/地区时,表单将提交。您的服务器处理国家/地区,返回带有国家/地区字段值的同一页面,以及下一个下拉列表中可能出现的城市列表。这样做允许您仅依赖表单提交而不是JavaScript来按顺序过滤数据。您的服务器将负责跟踪用户的移动距离。这个解决方案的明显缺点是JSP非常混乱,所有的嵌套块都很混乱。
您还可以尝试一种混合解决方案:当页面加载时,查看您的JavaScript是否已加载。如果是这样的话,用支持AJAX的纯HTML替换提交表单,以填充下一组选项。这样,当JavaScript加载时,您的页面不必刷新很多次,但是如果JavaScript没有加载,页面仍然可以正常工作。只是想一想。

文本搜索返回的最佳匹配项是什么?实际上分别是8344和14911个条目,但我舍入得很厉害。文本搜索返回的最佳匹配项是什么?实际上分别是8344和14911个条目,但我舍入得很厉害。