【问题标题】:Javascript - get text instead of values from multiple select boxesJavascript - 从多个选择框中获取文本而不是值
【发布时间】:2020-12-14 22:13:36
【问题描述】:

我有一个表单,用户可以根据需要添加尽可能多的下拉菜单。 我需要将下拉菜单中所选选项中的文本保存到会话中。

HTML:

<select name="codes[]" class="form-control-edited coinsurers-sv d-inline-block" placeholder="Please select">
    <option value="">Please select</option>
    <option value="1">Test 1</option>
    <option value="2">Test 2</option>
    <option value="3">Test 3</option>
</select>

Javascript:

<script>
let coInsuredPersonsSV = $('.coinsurers-sv').map(function (){ return $('.coinsurers-sv').find("option:selected").text() }).toArray();
sessionStorage.removeItem('co-insured-persons-hi-sv');

if (coInsuredPersonsSV.length > 0) {
sessionStorage.setItem('co-insured-persons-hi-sv', JSON.stringify(coInsuredPersonsSV));
}
</script>

现在假设用户需要 3 个下拉表单,并在每个下拉字段中选择另一个选项。

Dropdown 1: Test 1
Dropdown 2: Test 2
Dropdown 3: Test 3

我的会话存储结果是:

["Test 1   Test 2   Test 3", "Test 1   Test 2   Test 3", "Test 1   Test 2   Test 3"]

但结果应该是:

["Test 1", "Test 2", "Test 3"]

有人可以帮助我了解如何更改 .find 函数以获得我想要的结果吗?

【问题讨论】:

    标签: javascript jquery session-storage


    【解决方案1】:

    map 回调函数中,您选择所有 下拉列表,而不是迭代的。所以替换这段代码:

    return $('.coinsurers-sv').find
    

    ...与:

    return $(this).find
    

    【讨论】:

    • 非常感谢。它现在正在正常工作。感谢您的快速帮助,我们会接受您的正确答案。
    猜你喜欢
    • 2016-07-28
    • 1970-01-01
    • 2020-02-23
    • 2014-07-19
    • 2014-06-10
    • 2016-03-19
    • 1970-01-01
    • 2012-10-13
    • 2014-09-27
    相关资源
    最近更新 更多