javascript - 在 SELECT 标签中搜索 OPTION

标签 javascript php jquery

我有初级到中级的网络开发知识,我正在制作一个询问人们一些个人数据的网页。
这是一项关于失业的非正式研究。
这是我主持page的地方(巴西葡萄牙语)。

我从“Ministry of Jobs”网站获得了一份职业列表,我以这种方式在 SELECT 字段中显示此列表:

<?php
    $ocupacoes = file('ocupacoes');
    $options = '<option selected disabled>Selecione uma ocupação</option>';
    foreach ($ocupacoes as $ocupacao) {
        $options .= '<option value="'.$ocupacao.'">'.$ocupacao.'</option>';
    }
    $select = '<select id="ocupacoes" name="ocupacao">'.$options.'</select>';

    echo $select;
?>

现在这就是我想要的:

人们能够轻松地搜索他们的职业,特别是因为人们经常通过智能手机访问网站(在智能手机上有数百个选项的列表中搜索一个选项是痛苦的)。

我尝试使用 Select2Selectize 执行此操作,但没有成功。
也许是因为我在 php 代码之后尝试使用它,我不知道。
我找到了 datalist 标签,但我不想使用它,因为人们必须选择预定义的条目。
我发现 JQuery UI 可以提供帮助,但我不知道该怎么做。

我需要一些帮助/光明,因为我自己无法弄清楚。

我也接受一些关于网络开发和/或我的代码的提示,因为该页面是链接的。

<小时/>

编辑:JQuery 未定义。所以答案是我必须重新安排文件的导入,以便首先导入 JQuery,然后才能导入 select2。 感谢https://stackoverflow.com/users/3367974/mehdi-dehghani帮助我通过控制台查看器找到它。

最佳答案

<html>
<head>
    <title>Projeto 02 - Desenvolvimento WEB</title>

    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>

    <link rel="stylesheet" type="text/css" href="http://kelvin.96.lt/centralizaDivs.css">
    <link rel="stylesheet" type="text/css" href="http://kelvin.96.lt/style.css">

    <script type="text/javascript" src="http://kelvin.96.lt/validadores.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script>

  </head>
<body>

<div id="outer">
    <div id="middle">
        <div id="inner">
            <legend id="formul">Formulário de pesquisa sobre desemprego</legend>
            <form name="cadastro" action="index.php" method="post" onsubmit="return validaForm()">
                <fieldset id="desemp">
                    <legend>Está desempregado?</legend>
                    <input type="radio" name="desempregado" value=1 id="d_sim" onclick="return validaOcupac()">
                    <label for="d_sim">Sim</label><br>
                    <input type="radio" name="desempregado" value=0 id="d_nao" onclick="return validaOcupac()">
                    <label for="d_nao">Não</label>
                </fieldset>
                <fieldset id="sex">
                    <legend>Selecione seu sexo</legend>
                    <input type="radio" name="sexo" value="Masculino" id="s_masculino">
                    <label for="s_masculino">Masculino</label><br>
                    <input type="radio" name="sexo" value="Feminino" id="s_feminino">
                    <label for="s_feminino">Feminino</label><br>
                    <input type="radio" name="sexo" value="Outros" id="s_outros">
                    <label for="s_outros">Outros</label>
                </fieldset>
                <fieldset>
                    <legend>Selecione seu nível de escolaridade</legend>
                    <select name="escolaridade">
                        <option selected disabled>Selecione o nível</option>
                        <option>Fundamental</option>
                        <option>Médio</option>
                        <option>Superior</option>
                        <option>Pós graduação</option>
                    </select><br>
                    <select name="emcurso">
                        <option selected disabled>-------------</option>
                        <option>Completo</option>
                        <option>Incompleto</option>
                        <option>Cursando</option>
                    </select>
                </fieldset>
                <fieldset>
                    <legend>De onde você é?</legend>
                    <select id="estados" name="estado">
                    </select><br>
                    <select id="cidades" name="cidade">
                    </select>
                </fieldset>
                <fieldset>
                    <legend>Idade</legend>
                    <input type="number" placeholder="Quantos anos você tem?" id="i_idade" name="idade">
                </fieldset>
                <fieldset>
                    <legend>Ocupação</legend>
                    <select id="ocupacoes" name="ocupacao">
                      <option selected disabled>Selecione uma ocupação</option><option value="Abatedor">Abatedor</option><option value="Acabador de calçados">Acabador de calçados</option>
                      <option value="Acabador de embalagens (flexíveis e cartotécnicas)">Acabador de embalagens (flexíveis e cartotécnicas)</option>
                  </select>             
                </fieldset>
                <div id="botoes">
                    <input type="submit"> <input type="reset">
                </div>
            </form>
        </div>
    </div>
</div>

    <script>
        $(document).ready(function () {

            $("#ocupacoes").select2();
            $.getJSON('estados_cidades.json', function (data) {
                var items = [];
                var options = '<option selected disabled>Selecione seu estado</option>';
                $.each(data, function (key, val) {
                    options += '<option value="' + val.nome + '">' + val.nome + '</option>';
                });
                $("#estados").html(options);
                $("#estados").change(function () {
                    var options_cidades = '';
                    var str = "";
                    $("#estados option:selected").each(function () {
                        str += $(this).text();
                    });
                    $.each(data, function (key, val) {
                        if(val.nome == str) {
                            $.each(val.cidades, function (key_city, val_city) {
                                options_cidades += '<option value="' + val_city + '">' + val_city + '</option>';
                            });
                        }
                    });
                    $("#cidades").html(options_cidades);
                }).change();
            });

        });
    </script>

</body>
</html>

关于javascript - 在 SELECT 标签中搜索 OPTION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44500873/

相关文章:

javascript - 将 jQuery 转换为用户脚本的纯 Javascript 时遇到问题

javascript - 如何使文本区域动态变化?

php 域名可用性函数

php - 如何使用 php curl 在 Mandrill 中附加 Excel 文件

javascript - Backbone.js 查看实例变量?

javascript - 如何在 stockfish.js 中使用 FEN 字符串设置位置?

javascript - 无法通过javascript函数调用路由

PHP Regex 拆分 SQL 字段列表

jquery - 使用 jQuery 拉伸(stretch)图像以填充整个 div,它在窗口调整大小时调整大小

javascript - 为什么这段代码会报错?