簡體   English   中英

jQuery Select2插件:重置

[英]jQuery Select2 plugin: reset

我希望能夠重置( 空值,並設置占位符像一個“新鮮”之一)一個選擇二下拉。 更確切地說,我有從屬下拉列表,清除其中一個應清除從屬下拉列表。

例如,我可以有國家,地區和城市:清算國家應該清除地區和城市。

我嘗試了幾件事,但從未能夠以編程方式觸發清除。 最明顯的一個是$('#my-select').empty()但不重置占位符,並且保留所選值(即使未顯示)。

使用$('#my-select').select2('data', {}) (或$('#my-select').select2('data', null) )不會產生所需的結果並得到錯誤:

錯誤:附加到元素時,Select2不允許使用選項“數據”。

有沒有有效的解決方案?

好...

通過某種方式,它正在研究一個最小的示例(請參見下文)。 在此示例中,第二個選擇在重置時不會恢復其占位符(假設它幾乎可以正常工作)。 這意味着我正在處理的舊代碼在某個地方有問題(考慮到錯誤,我猜JSP標記會生成<select> )。

這個問題似乎不是我要找的地方。

所以這是解決方案(但不是我真正問題的解決方案)。

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Select2 example</title>
    <link href="select2-release-3.2/select2.css" media="all" rel="stylesheet" type="text/css" />
</head>
<body>

    <fieldset>
        <legend>Example</legend>

        <label for="first-select">First</label>
        <input id="first-select" />

        <label for="second-select">Second (depends on first)</label>
        <input id="second-select" />

    </fieldset>

    <script src="jquery-1.9.1.min.js"></script>
    <script src="select2-release-3.2/select2.js"></script>

    <script type="text/javascript">
        $(function() {

            var secondData = [{id:0,text:'1'},{id:1,text:'2'},{id:2,text:'3'},{id:3,text:'4'}];

            $(document).ready(function() {
                // Init first dropdown.
                $('#first-select').select2({
                    allowClear: true, 
                    placeholder: 'Select a value',
                    data: [{id:0,text:'A'},{id:1,text:'B'},{id:2,text:'C'},{id:3,text:'D'},{id:4,text:'E'}]
                });

                // Init second dropdown.
                $('#second-select').select2({
                    allowClear: true, 
                    placeholder: 'Select a value',
                    data: {}
                });
            });

            $(document).on('change', '#first-select', function() {
                if ($(this).val() == "") {
                    // Clear second
                    $('#second-select').select2({
                        allowClear: true, 
                        placeholder: 'Select a value',
                        data: {}
                    });
                } else {
                    // Fill second
                    $('#second-select').select2({data: secondData});
                }
            });
        });
    </script>

</body>
</html>

在Select2 v3.4.1中,我從UL中刪除了Li元素,但僅刪除了“ select2-search-choice”標簽:

$('.select2-search-choice').remove();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM