2016-04-12 3 views
0

Я надеюсь, что кто-то может помочь Я искал ответ и пробовал много вариантов ... У меня есть база данных HTML5 и таблицы, которые обновляются, затем поле выбора опустели, новый select варианты создаются. Проблема заключается в том, что выбранная опция не отображается. Ниже приведен код мобильного кода. БлагодаряJQuery Mobile select box не отображает выбранную опцию

function updateCList() { 
    db.transaction(function (tx) { 
     tx.executeSql('SELECT * FROM CourseTable', [], function (tx, results) { 
      var len = results.rows.length, i; 
      $('#coursemenu').empty(); 
      SelectOption(document.courseData_form.coursemenu, "Course Type", "Course Type") 
      for (i = 0; i < len; i++){ 
       SelectOption(document.courseData_form.coursemenu, results.rows.item(i).c_type, results.rows.item(i).c_type); 
      } 
     }, null); 
     $('#coursemenu').selectmenu('refresh', true);   
    }); 
} 
+0

Вы должны, вероятно, показать нам код SelectOption() – ezanker

+0

SelectOption() является шестой и восьмой строки в коде. Список правильно создан, выбранный элемент (по умолчанию) не отображается. – GlenS

+0

@ezanker - вот html

GlenS

ответ

0

Это было моим обходным решением. Когда я использовал пустую команду, ссылка на значение по умолчанию была сломана, этот код удаляет все параметры, кроме первого.

  function emptyCList() { 
       var select = document.getElementById("coursemenu"); 
       var len = select.options.length; 
       for (i = len; i > 0; i--) { 
        select.options[i] = null; 
       }; 
      }; 
0

executeSql() асинхронная функция, поэтому при вызове selectmenu('refresh', true) обновить элемент, до сих пор еще не были добавлены опции. Чтобы избежать этого, переместите команду обновления к внутренней функции executeSql(), как это:

tx.executeSql('SELECT * FROM CourseTable', [], function (tx, results) { 
    var len = results.rows.length, i; 
    $('#coursemenu').empty(); 
    SelectOption(document.courseData_form.coursemenu, "Course Type", "Course Type") 
    for (i = 0; i < len; i++){ 
     SelectOption(document.courseData_form.coursemenu, results.rows.item(i).c_type, results.rows.item(i).c_type); 
    } 
    $('#coursemenu').selectmenu('refresh', true); 
}, null); 

Подробнее о функциях и синтаксиса в docs.

+0

Это не сработало, ни ... .. Спасибо за ответ. – GlenS

+0

См. Http://stackoverflow.com/questions/16953680/in-jquery-mobile-1-3-1-how-do-you-set-selected-value-in-a-selectmenu/16953770#comment24486869_16953770 –

Смежные вопросы