当前位置: 首页 > 知识库问答 >
问题:

如何使用jquery选择slim select选项

公孙宸
2023-03-14

我有一些连接的选择工作良好。顺便说一句,我想把这些选择转换成很小的选择,但我发现这样做有些困难。例如,我有一个ID为level_incarico的select。当我选择level_incarico的一个大于零的选项时,应该会出现其他选择。之后,当我更改级联选择的选项(例如在select_nazione中)时,该选项会正确更改。但是,当我选择另一次时,level_incarico中的选项zero和我选择另一次时,level_incarico中大于zero的选项会出现,而另一次选择select_nazione中已经选择了选项。

这是我的javascript代码:

$("#level_incarico").change(function(){
    var option_selected = $('option:selected', this).attr('value');
    document.getElementById('level_incarico_selected').value = option_selected;

    if (option_selected > 0) {
        $('.nazione').css('display','block');
        $('.regione').css('display','none');
        $('.provincie').css('display','none');
        $('.comune').css('display','none');
        $('.altro_nazione').css('display','none');
        $("#select_regione").val(0);
        $("#select_provincia").val(0);
        $("#select_comune").val(0);
        $("#select_nazione").val(0);
        $("#altro_input_nazioni").val("");
    } else {
        $('.nazione').css('display','none');
        $('.regione').css('display','none');
        $('.provincie').css('display','none');
        $('.comune').css('display','none');
        $('.altro_nazione').css('display','none');
        $("#select_nazione").val(0); //here
        $("#select_regione").val(0);
        $("#select_provincia").val(0);
        $("#select_comune").val(0);
        $("#altro_input_nazioni").val("");
    }
});

这是我创建所选内容的方式:

new SlimSelect({
    select: '#select_nazione'
})

new SlimSelect({
    select: '#level_incarico'
})

换句话说,所选选项$(“#select_Nazione”).val(0);的重置不能正常工作。它适用于普通选择,但不适用于slim选择。

下面是我如何填写level_incarico:

        echo "<select id='level_incarico' name='level_incarico'>";
        echo "<option></option>";
        echo "<option value='0' " . (($ra_level == 0 && $id > 0)  ? 'selected' : '') . " >Mondiale</option>";
        echo "<option value='1' " . (($ra_level == 1 && $id > 0)  ? 'selected' : '') . " >Nazionale</option>";
        echo "<option value='2' " . (($ra_level == 2 && $id > 0)  ? 'selected' : '') . " >Regionale</option>";
        echo "<option value='3' " . (($ra_level == 3 && $id > 0)  ? 'selected' : '') . " >Provinciale</option>";
        echo "<option value='4' " . (($ra_level == 4 && $id > 0)  ? 'selected' : '') . " >Comunale</option>";
        echo "</select>";

下面是我如何填写select_nazione:

    echo "<select id='select_nazione' name='select_nazione' required>";

    echo "<option value='0'>Seleziona...</option>";
    
        while($row = $result->fetch_assoc()) 
            {
                $nazione_id_val=intval($row['country_id']);
                $nazione_nome_val=$row['country_name'];
                
                if($ra_level > 0) {
                    if ($nazione_id_val == $id_nazione) 
                        {
                            $selected = "selected" ;
                        } else {
                            $selected = "" ;
                        }   
                    
                }
                echo"<option value='$nazione_id_val' $selected>$nazione_nome_val</option>";
            }
    echo "</select>";

能帮上忙吗?

共有1个答案

公西良骏
2023-03-14
  • 为什么对全部为0的值使用其他值
  • 为什么在两个分支中都显示无?

这对你有帮助吗?我从手册上得到的代码

null

const $slimNazione  = new SlimSelect({
   select: '#select_nazione',
   onChange: (info) => {
    console.log(info.value)
  }
})

const $slimIncario = new SlimSelect({
  select: '#level_incarico',
  onChange: (info) => {
    console.log(info.value)
    const val = +info.value;
    $('.nazione').toggle(val > 0);
    $('.regione').hide();
    $('.provincie').hide();
    $('.comune').hide();
    $('.altro_nazione').hide();
    $slimNazione.set('0')
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/slim-select/1.27.0/slimselect.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slim-select/1.27.0/slimselect.css"/>

<select id='select_nazione' name='select_nazione'>
  <option value="0">Seleziona...</option>
  <option value='A'>A</option>
  <option value='B'>B</option>
  <option value='C'>C</option>
</select>

<select id='level_incarico' name='level_incarico'>
  <option></option>
  <option value='0'>Mondiale</option>
  <option value='1'>Nazionale</option>
  <option value='2'>Regionale</option>
  <option value='3'>Provinciale</option>
  <option value='4'>Comunale</option>
</select>
 类似资料:
  • 问题内容: 我想知道是否有可能让jQuery 在下拉框中选择,例如第4个项目? 我希望用户单击一个链接,然后让该框更改其值,就像用户通过单击来选择它一样。 问题答案: 怎么样 对于现代版本的jquery,应使用代替

  • 问题内容: 我需要有关jQuery选择器的帮助。假设我有一个标记,如下所示: 除了用户单击时,如何获取所有复选框? 问题答案: 一个更完整的示例适用于您的情况: 当被点击复选框,该复选框的状态进行检查,并在当前形式的所有复选框被设置为相同的状态。 请注意,您无需从选择中排除该复选框,因为该复选框的状态将与其他所有复选框相同。如果出于某些原因确实需要排除,则可以使用以下方法:

  • 问题内容: jQuery或jQuery-UI是否具有禁用给定文档元素的文本选择功能? 问题答案: 在jQuery 1.8中,可以按照以下步骤进行操作:

  • 我将html写成 现在我希望如果选项是1,那么它应该被选择为 请帮帮我!!!

  • 以下代码起作用: 如何将第二行重构为: 您对所选的******选项使用了什么?

  • 我希望,如果我选择“mammals”,动物选择选项只显示值为1的选项data-animal_class。 我知道如何获得哺乳动物值,但我不知道如何使用过滤器 这是我的代码: