JQuery Mobile изменить выбранный вариант DropDown и обновить его - PullRequest
13 голосов
/ 16 ноября 2011

Я пишу мобильное приложение jQuery.Я изменяю выбранную опцию в раскрывающемся списке с помощью следующего оператора: - $ ("# DataBaseNames"). Val (db);

Я уверен в том, что передано правильное значение в дБ, так как я проверил его через предупреждениеКогда я раскрываю раскрывающийся список, он также показывает правильный выбранный текст, но сам раскрывающийся список не отображает правильный выбранный текст.

Любой вызов обновления, который мне нужно вставить?

Редактировать: -Добавить код, приведенный ниже ответ от Филла, решил это

<script type="text/javascript">   

        $("#@ViewBag.DivTitle").live('pageshow', function () {

            var db = getCookie("DataBaseNames");

            $("#DataBaseNames").val(db);            
            $("#DataBaseNames option[value='"+ db + "']").attr("selected", "selected");

            //      refresh value , Following is what is required        
            $('select').selectmenu('refresh');

            $("#cmdLogOn").live("click", function () {
                var dbSelected = $("#DataBaseNames option:selected").text();              
                setCookie('DataBaseNames', dbSelected);
            });
        });

        function setCookie(name, value) {
          var expires = "";
            document.cookie = name + "=" + value + expires + "; path=/";
        }

        function getCookie(name) {
            var nameEQ = name + "=";
            var ca = document.cookie.split(';');
            for (var i = 0; i < ca.length; i++) {
                var c = ca[i];
                while (c.charAt(0) == ' ') c = c.substring(1, c.length);
                if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
            }
            return null;
        }
    </script>

Ответы [ 3 ]

37 голосов
/ 16 ноября 2011

обновить обновить пользовательский выбор

Используется для обновления пользовательского выбора, чтобы отразить значение собственного элемента выбора. Если число параметров в выборе отличается отколичество пунктов в пользовательском меню, он будет перестроить пользовательское меню.Кроме того, если вы передадите истинный аргумент, вы можете заставить перестроение произойти.

//refresh value         
$('select').selectmenu('refresh');

//refresh and force rebuild
$('select').selectmenu('refresh', true);

Документы:

2 голосов
/ 24 августа 2012

Я проверил эту ссылку и нашел, что она работает для меня. Попробуйте это:

var myselect = $("select#YourDropdownID");
myselect[0].selectedIndex =0;
myselect.selectmenu("refresh");
0 голосов
/ 05 марта 2014

Если вы хотите изменить один выпадающий список на основе другого, используйте это.

<link href="code.jquery.com/mobile/1.4.1/jquery.mobile-1.4.1.min.css" rel="stylesheet"/>
<link href="jquery/css/index.css" rel="stylesheet"/>
<link href="../favicon.ico" rel="shortcut icon"/>
<link href="http://fonts.googleapis.com/css?family=Open+Sans:300,400,700" rel="stylesheet"/>
<link href="http://code.jquery.com/mobile/1.4.1/jquery.mobile-1.4.1.min.css" rel="stylesheet" />
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.1/jquery.mobile-1.4.1.min.js"></script>

<script type="text/javascript">

    function ItemNo()
    {
    var no = $('#sltItemNo')[0].selectedIndex;

    var myselect = $("select#sltItemName");
    myselect[0].selectedIndex =no;
    myselect.selectmenu("refresh");
    }
    function ItemName()
    {
    var no = $('#sltItemName')[0].selectedIndex;

    var myselect = $("select#sltItemNo");
    myselect[0].selectedIndex =no;
    myselect.selectmenu("refresh");
    }

</script>

<select id="sltItemNo"  onchange="ItemNo()" data-shadow="false" data-mini="true">
   <option value="Abc">1</option>
   <option value="Cde">2</option>
   <option value="Efg">3</option>
</select>

<select id="sltItemName"  onchange="ItemName()" data-shadow="false" data-mini="true">
   <option value="1">Abc</option>
   <option value="2">Cde</option>
   <option value="3">Efg</option>
</select>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...