首页 > 解决方案 > 如何使用不区分大小写的下拉选择

问题描述

我有一个下拉菜单,其中包含“儿科”之类的选项。我的页面接收查询参数为“儿科”(小写)。

当我尝试将我的下拉列表选择设置为儿科时,什么也没有发生,因为下拉列表没有儿科。

前任:

<div class="option" data-selectable="" data-value="Pediatrics">Pediatrics</div>

我正在尝试使用以下方法选择此选项:

let myParamS = "pediatrics";

$("#specialization").data('selectize').setValue(myParamS); 

=> 不起作用,因为我的下拉列表有“P”ediatrics 而不是“p”ediatrics

任何人都知道设置它的最佳方法是什么?

标签: javascriptjqueryselectize.js

解决方案


您可以通过不区分大小写的比较来遍历选项,并找到要设置的正确选项值。

let myParamS = "pediatrics";

const selectizeInput = $("#specialization").data('selectize');
// returns a dictionary of options with value as a key
const options = selectizeInput.options; 

// does case insensitive comparision to find the matching option
const getValue = (options, valueToFind) => Object.keys(options)
.find(key => key.toLowerCase() === valueToFind.toLowerCase());

// set value
selectizeInput.setValue(getValue(options, myParamS));

推荐阅读