Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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
Javascript 选择2当选择其他选项时删除默认选项_Javascript_Jquery_Jquery Select2 - Fatal编程技术网

Javascript 选择2当选择其他选项时删除默认选项

Javascript 选择2当选择其他选项时删除默认选项,javascript,jquery,jquery-select2,Javascript,Jquery,Jquery Select2,我希望有一个默认选项充当占位符 我正在用ajax搜索产品。我希望我的输入框显示全部,直到我选择了一个产品 这将是默认视图: 但是,一旦我选择了一个产品,我希望所有的东西都消失,只有产品显示: 我已经组装了一个密码笔,希望能让事情顺利进行 谢谢大家! HTML: 我们可以使用本机select元素的change事件及其作用域版本change.select2 在元素上添加select2插件时,只要选择或删除某个选项,就会触发更改事件 因此,当从异步列表中添加一个选项时,我们应该删除all选项。 此外

我希望有一个默认选项充当占位符

我正在用ajax搜索产品。我希望我的输入框显示全部,直到我选择了一个产品

这将是默认视图:

但是,一旦我选择了一个产品,我希望所有的东西都消失,只有产品显示:

我已经组装了一个密码笔,希望能让事情顺利进行

谢谢大家!

HTML:

我们可以使用本机select元素的change事件及其作用域版本change.select2

在元素上添加select2插件时,只要选择或删除某个选项,就会触发更改事件

因此,当从异步列表中添加一个选项时,我们应该删除all选项。 此外,当删除所有选项时,select没有任何值,我们应该重新添加all选项。 但是我们需要将更改通知select2,因此我们触发change.select2事件

完整代码为:

在“更改”功能上选择2 Instance{ 常量值=$this.val; 如果值.length>1{ const index=value.indexOf'all'; 如果索引>-1{ 价值指数,1; $this.valvalues; } }如果values.length==0,则为else{ $this.val'all'; } $this.trigger'change.select2';//仅通知select2更改; }; 代码笔演示:

有关Select2活动的更多信息:


你的产品是多选的吗?这正是我想要做的!非常感谢你!嘿,我不知道我能不能麻烦你,让我改变一下实现这一目标的方式?我以前在标记中有All选项,但似乎我需要通过JS添加它。我用叉子叉了你的笔:非常感谢你朝正确的方向推动!我将努力实施它。但是,您是否希望“所有选项”也显示在搜索结果列表中?还是像以前一样?这支笔对你有用吗。var allOptionData={id:'all',text:'all'};var allOption=new OptionallOptionData.text,allOptionData.id,true,true;jQuery'choices multiple default'。appendallOption.trigger'change';对就是这样!非常感谢您抽出时间,您真慷慨。非常感谢。非常感谢。
<div class="container">

  <select class="form-control am-product-selector__product-list-select" name="choices-multiple-default" id="choices-multiple-default" placeholder="All Products" multiple>
    <option value="All" selected>All</option>

  </select>

</div>

const options = [{ id: 1, text: 'All' }];

const select2Instance = jQuery( '#choices-multiple-default' ).select2( {
        placeholder: 'Search products',
        ajax: {
            url: url,
            dataType: 'json',
            delay: 250,

            data: params => {
                return {
                    //term: params.term // search query
                };
            },

            // Process fetched results
            processResults: data => {
                if ( data ) {
                    data.map( item => {
                        options.push( { id: item.id, text: item.title } );
                    } );
                }

                return {
                    results: options
                };
            },
            cache: true
        },
        minimumInputLength: 3 // the minimum of symbols to input before perform a search
    } );