我正在使用 jquery 个选定的插件

Am using jquery chosen plugin

从下拉列表中我只想要某些部分(例如 AL_Alabhama 意味着我只想要 AL)。我使用拆分 function.When 我 select 下拉列表中的一些值,文本框包含拆分结果但相同的值反映回下拉列表 list.I 想要原始值下拉菜单。请提出一些解决方案

        $(document).ready(function () {
            var selText;
            $('#locate option').each(function () {
                $(this).attr('name', $(this).text());
            });
                    $('#locate').change(function () {
             //Gets the value for selected option
                    selText = $('#locate option:selected').text();
              //split the value
                     $('#locate option:selected').text(selText.split("_")[0]).trigger('liszt:updated');
                 //trying to add the values again to the dropdown
                    $('#locate').next().click(function () {
                    if (selText == "") {
                        $("#locate option").filter(":contains(" + selText.split("_")[0] + ")").text(selText).trigger('liszt:updated');

                });
        }

看行$('#locate option:selected').text(selText.split("_")[0]).trigger('liszt:updated');

为了方便起见,让我们把它分成两部分:

var splittedText = selText.split("_")[0];
$('#locate option:selected').text(splittedText).trigger('liszt:updated');

你看到会发生什么了吗?不是将拆分的文本分配给变量,而是将其设置为返回下拉列表的文本。

只需将它分配给一个变量,就像我在上面向您展示的那样:var splittedText = selText.split("_")[0];

并删除部分 .text(splittedText)

所以它看起来像这样:

var splittedText = selText.split("_")[0];
$('#locate option:selected').trigger('liszt:updated');

更新:

触发自定义事件.trigger('liszt:updated'); 只会通知 Chosen 插件您已更新下拉列表。如果你想单独设置文本框的文本,你需要手动设置:

$("#myTextBox").val(splittedText);

您可能知道(或不知道),select或$('#locate option:selected')将为您return列出所有select编辑的<option>元素有 parent 和 id="locate"

因此,由于您很可能一次只有 1 个选项 selected,这将 return 您在下拉列表中 selected 选项。

当您调用 jquery object 的函数 .text() 并提供参数(例如:.text(splittedText))时,它将设置其中每个元素的文本列出 jquery select 或 return。
如果您不想 select 选项更改其文本,请不要调用 .text(splittedText)