2013-02-01 26 views
1

因此,這一個是我的命..使用jQuery UI自動完成用的WebSQL和JSON對象數組

我試圖使用jQuery UI的自動完成插件用的WebSQL表工作。我遇到的問題是我需要從json對象數組中獲取兩個字段;一個id字段和一個名稱字段,並將它們推送到JSON對象數組中,然後將其綁定到自動完成插件。

當用戶鍵入自動填充輸入字段時,他們只應該看到名稱字段,並且當選擇名稱時應將ID字段設置爲變量。

下面是我有一個例子:

var allFields = []; 

    db.runInTxn({ 
     dbAction: function (txn) { 
      txn.executeSql('SELECT <Id>, <Field1>, <Field2> FROM <Table>', null, function (txn, resultSet) { 
       var rows = resultSet.rows; 
       for (var i = 0; i < rows.length; i++) { 
        var row = rows.item(i); 
        allFields.push(
         {1: row.<Id>, 2: row.<Field1>, 3: row.<Field2>} 
        ); 

       } 

      }, function (txn, error) { 
       console.log('Select error.', error); 
      }); 
     } 
    }); 

    //autocomplete field1 input 
    $("#field1").autocomplete({ 
     source: allFields, 
     select: function (event, ui) { 
      alert(ui.<Id>); 
      //return false; 
     } 
    }); 

這是行不通的。任何幫助將不勝感激。

回答

1

所以我想出來..

其實真正需要給定一個名爲「價值」鍵easy..The場即是自動完成的值。因此,field1將是自動完成值,並且在選擇field1時將返回id。

var allFields = []; 

db.runInTxn({ 
    dbAction: function (txn) { 
     txn.executeSql('SELECT <Id>, <Field1>, <Field2> FROM <Table>', null, function (txn, resultSet) { 
      var rows = resultSet.rows; 
      for (var i = 0; i < rows.length; i++) { 
       var row = rows.item(i); 
       allFields.push(
        {1: row.<Id>, value: row.<Field1>, 3: row.<Field2>} 
       ); 

      } 

     }, function (txn, error) { 
      console.log('Select error.', error); 
     }); 
    } 
}); 

//autocomplete field1 input 
$("#field1").autocomplete({ 
    source: allFields, 
    select: function (event, ui) { 
     alert(ui.item.<Id>); 
     //return false; 
    } 
});