使用JQuery.MSDropDown更新selectedIndex选项菜单

时间:2013-07-16 15:36:01

标签: javascript jquery html dom

我正在使用<select>选项菜单jQuery.msDropDown但由于某种原因,在使用javascript / jquery设置select.selectedIndex属性后,DOM不会更新。

点击下拉菜单然后点击页面上的后面(关闭它),它会使用正确的selectedIndex进行更新。

我正在循环更新selectedIndex:

    $.fn.[unrelated function].after = function( opts, curr, next, fwd ) {
        var $sel = document.getElementById('selectElem');
        for(var i = 0, j = $sel.options.length; i < j; ++i) {
            if(($sel.options[i].value).substr(1) == next.title) {
                //I have tried various ways here
                $sel.selectedIndex = i;
                //$('#selectElem').prop("selectedIndex",i);
                break;
            }
        }
    };

P.S。似乎没有msDropDown的任何文档,否则我会尝试确定哪个事件会触发更新框。

2 个答案:

答案 0 :(得分:8)

试试这个 -

var oHandler = $('#selectElem').msDropDown().data("dd");
if(oHandler) {
    oHandler.set("selectedIndex", i);
}

答案 1 :(得分:0)

这是完整的代码:

$(document).ready(function() {
    $("#Country").msDropdown();


    var country_code = 'in';
    var i = 0;
    var indexNumber = 0;
    $("#Country option").each(function(){
        if($(this).val() == country_code){
            indexNumber = i;
        }
        i++;
    });
    var oHandler = $('#Country').msDropDown().data("dd");
    if(oHandler) {
        oHandler.set("selectedIndex", indexNumber);
    }

});