簡體   English   中英

jQuery mobile Multiselect不會更新所選屬性

[英]jQuery mobile Multiselect doesn't update selected attribute

我有一個jQuery移動自定義多選,但當我選擇一個項目時,我們有HTML select標記上的項目列表,但它沒有使用selected屬性更新。

使用Multiple選擇頁面示例

 <div data-role="fieldcontain" class="ui-field-contain ui-body ui-br"> <label for="select-choice-9" class="select ui-select"> Choose shipping method(s): </label> <div class="ui-select"> <a href="#" role="button" aria-haspopup="true" data-theme="c" class="ui-btn ui-btn-icon-right ui-btn-corner-all ui-shadow ui-btn-up-c"> <span class="ui-btn-inner ui-btn-corner-all"> <span class="ui-btn-text"> Rush: 3 days, Express: next day </span> <span class="ui-icon ui-icon-arrow-d ui-icon-shadow"></span> </span> <span class="ui-li-count ui-btn-up-c ui-btn-corner-all" style=""> 2 </span> </a> <select name="select-choice-9" id="select-choice-9" multiple="multiple" data-native-menu="false" tabindex="-1"> <option>Choose options</option> <option value="standard">Standard: 7 day</option> <option value="rush">Rush: 3 days</option> <option value="express">Express: next day</option> <option value="overnight">Overnight</option> </select> </div> </div> 

有沒有辦法讓它默認添加selected屬性?

默認情況下,JQuery Mobile不會更新selected屬性以響應用戶的輸入。 您可以使用以下代碼使所選值與屬性保持同步。

$(function () {
    $('select').on('change', function (evt) {
        var options = $(evt.target).children('option'),
            current;
        for (var i = 0; i < options.length; i++) {
            current = options[i];
            if (current.selected === true && !current.hasAttribute('selected')) {
                options[i].setAttribute('selected', '');
            }
            if (current.selected === false && current.hasAttribute('selected')) {
                options[i].removeAttribute('selected');
            }
        }
    });
});

請記住,這將適用於DOM中已有的所有selectmenu小部件。 如果以編程方式添加一個,則還必須將事件處理程序添加到該窗口小部件。

暫無
暫無

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

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