2016-04-12 12 views
0

Ich hoffe, jemand kann helfen Ich habe nach der Antwort gesucht und viele Optionen ausprobiert ... .. Ich habe eine HTML5-Datenbank und Tabellen, die aktualisiert wird, dann wird die Auswahlbox geleert, neu auswählen Optionen werden erstellt. Das Problem ist, dass die ausgewählte Option nicht angezeigt wird. Unten ist die tatsächliche Abfrage Mobiler Code.JQuery Mobile-Auswahlbox zeigt keine ausgewählte Option an

Dank
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

Sie sollten uns wahrscheinlich zeigen den Code für SelectOption() – ezanker

+0

SelectOption() ist der 6. und 8. Zeile im Code. Die Liste wird korrekt erstellt, das ausgewählte Element (zuerst standardmäßig) wird nicht angezeigt. – GlenS

+0

@ezanker - Hier ist die html

GlenS

Antwort

0

Dies war meine Problemumgehung. Wenn ich den leeren Befehl verwendet habe, wurde die Verknüpfung zum Standard unterbrochen. Dieser Code löscht alle Optionen außer der ersten.

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

executeSql() ist eine asynchrone Funktion, so dass, wenn Sie die selectmenu('refresh', true) rufen Sie das Element zu aktualisieren, haben die Optionen immer noch nicht hinzugefügt. Um dies zu vermeiden, müssen Sie den Update-Befehl an die Innenseite der executeSql() Funktion, wie folgt aus:

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); 

Lesen Sie mehr über die Funktionen und Syntax in der docs.

+0

Das hat auch nicht funktioniert ... Danke für die Antwort. – GlenS

+0

Bitte lesen Sie http://stackoverflow.com/questions/16953680/in-jquery-mobile-1-3-1-how-do-you-set-selected-value-in-a-selectmenu/16953770#comment24486869_16953770 –