HTML选择-在HTML中显示值属性,但保留选项文本

文森特

option在一个select元素中有一个状态列表

<select>
    <option value="AL">Alabama</option>
    <option value="AK">Alaska</option>
    <option value="AZ">Arizona</option>
    <option value="AR">Arkansas</option>
</select>

我需要浏览器仅显示状态的缩写(当前存储在value属性中),但是打开的下拉菜单仍应显示状态的全名。因此,用户将在下拉菜单中看到并选择“亚利桑那”,然后关闭的下拉菜单将显示“ AZ”。

这个问题的第一个答案很接近,但是它用的值替换了option文本value,因此对我不起作用。

我想为此使用JavaScript / JQuery,但是对于仅使用HTML和CSS就能做到这一点的任何向导都表示赞赏。

关于如何实现这一目标的任何想法?

詹姆斯·马丁·戴维斯

如果您仍在寻找答案,这就是我会做的。

首先,我没有看到很多用例。似乎只是为了简化用户无论如何都可以轻松阅读的单词而付出了很多努力。虽然,这是。

因为没有真正的方法来检查最后选择的内容,除非我们将其存储在变量中,然后在用户选择输入时迭代列表以带回名称,因此需要大量的工作。不过,我们可以将数据存储在数组内的select中,然后将其持久化到我们想要的任何位置。在这种情况下,我不建议直接从HTML元素中使用数据,但是现在,您可以在下面的示例中看到将状态存储在数组中可以解决问题。

以下答案需要jQuery

请参阅JSFiddle或运行代码:

;(function() {

    var states = [];
    var customSelect = $('.js-select');
    var customSelectOptions = customSelect.children();

    // Get each state then push them to the array
    // Initial state declaration
    customSelectOptions.each(function() {
        var state = $(this).text();
        states.push({ state: state });
        if ($(this).is(':selected')) {
            $(this).text($(this).attr('value'));
        }
    });

    // On focus, always retain the full state name
    customSelect.on('focus', function() {

        customSelectOptions.each(function(index) {   
            $(this).text(states[index].state);
        });

        // On change, append the value to the selected option
        $(this).on('change', function() {

            customSelectOptions.each(function(options) {
                if ($(this).is(':selected')) {
                    $(this).text($(this).attr('value'));
                }
            });

            // Un-focus select on finish
            $(this).blur();

        });

    });

}(jQuery));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="js-select">
    <option value="AL">Alabama</option>
    <option value="AK">Alaska</option>
    <option value="AZ">Arizona</option>
    <option value="AR">Arkansas</option>
</select>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

HTML选择-在HTML中显示值属性,但保留选项文本

来自分类Dev

在html中显示选择选项的值

来自分类Dev

在html中显示选择选项的值

来自分类Dev

在html中显示选择选项的值

来自分类Dev

在html中显示选择选项的值

来自分类Dev

更改HTML中的文本选择选项

来自分类Dev

html选择列表-获取显示的文本值

来自分类Dev

从html获取纯文本,但希望使用javascript将标题属性保留在选择标记中

来自分类Dev

<>中的HTML选择选项

来自分类Dev

是否可以在jquery选择的插件选项中显示html内容?

来自分类Dev

html / css选择选项块显示

来自分类Dev

HTML选择选项需要突出显示

来自分类Dev

在选择选项中显示值而不是文本

来自分类Dev

HTML选择选项多行值

来自分类Dev

HTML / JS:更改JavaScript中的选择选项值

来自分类Dev

从选择选项 html 中读取多个值

来自分类Dev

设置HTML选择的值

来自分类Dev

如何获取html表中选择行的值并使用javasricpt在输入文本中显示它们?

来自分类Dev

如何从HTML中的代码选择中获取选定的值/文本

来自分类Dev

选择HTML中的图像

来自分类Dev

HTML中的图标选择选项

来自分类Dev

从选择框中获取选定的选项 html

来自分类Dev

如何从sql中的html文档中选择文本值?

来自分类Dev

如何使用Powershell选择HTML属性值

来自分类Dev

EJS的HTML选择选项

来自分类Dev

HTML选择插入选项

来自分类Dev

HTML:选择大小,不带选项

来自分类Dev

HTML嵌套选择选项

来自分类Dev

在JavaScript中选择HTML选项