Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在select2 jquery或javascript的下一个选择框中隐藏所选选项_Javascript_Jquery - Fatal编程技术网

在select2 jquery或javascript的下一个选择框中隐藏所选选项

在select2 jquery或javascript的下一个选择框中隐藏所选选项,javascript,jquery,Javascript,Jquery,我陷入了这个问题,即当用户从一个选择框中选择一个选项时,其他选择框的选项应该隐藏。当选定的选项更改时,以前选定的选项应再次对其他选择框可用 我当前代码的问题: 当选择框为“正常”选项时,我的代码正在工作,如果我更改为“选择2”,它将不起作用。如果选择框是select2:(?)的话,有人知道怎么做吗 代码中几乎没有问题 您在选项中使用的val不正确,您应该使用value 此外,如果在上一次选择中未与所选选项的val()匹配,则所选文本将始终不同 编辑:您必须使用。每个设置attr禁用其他选项 工作

我陷入了这个问题,即当用户从一个选择框中选择一个选项时,其他选择框的选项应该隐藏。当选定的选项更改时,以前选定的选项应再次对其他选择框可用

我当前代码的问题:

当选择框为“正常”选项时,我的代码正在工作,如果我更改为“选择2”,它将不起作用。如果选择框是select2:(?)的话,有人知道怎么做吗


代码中几乎没有问题

  • 您在选项中使用的
    val
    不正确,您应该使用
    value
  • 此外,如果在上一次选择中未与所选选项的val()匹配,则所选文本将始终不同
  • 编辑:您必须使用
    。每个
    设置
    attr
    禁用其他选项

    工作小提琴演示:

    运行下面的代码段以查看它是否正常工作

    使用禁用的attr on选项

    $(“.s”)。选择2()
    $('.s').change(函数(){
    let value=$(this.val()
    $(this).sides('.s').children('option').attr('disabled',false)
    $('.s')。每个(函数(){
    $(this).sides('.s').children('option[value='+$(this).val()+']).attr('disabled','disabled'))
    })
    })
    
    选择
    林
    棕褐色的
    阿拉克斯
    国王
    

    选择 林 棕褐色的 亚历克斯 国王

    选择 林 棕褐色的 亚历克斯 国王
    select 2插件具有修改选项的方法。请使用插件API。还要注意的是,
    元素的隐藏/显示不受跨浏览器支持。对于
    @charlietfl;,隐藏/显示在所有浏览器中都不起作用。谢谢;)是的,我知道。因此,为什么我建议禁用
    attr
    remove
    而不是
    hide
    show
    Hi@alwayshelling,这看起来就像是当所选选项更改之前所选的选项时不可用。例如,当第一个选择框我选择lim时,第二个选择框将没有lim选择,但当第一个选择框变为棕褐色时,棕褐色选项应该能够在其他选择框中进行选择。@MMMM很高兴我帮助了你。干杯
    Code: http://jsfiddle.net/t8170aqg/1/