1

だからこれは私を殺している。

jQueryUIオートコンプリートプラグインを使用してwebSQLテーブルを操作しようとしています。私が抱えている問題は、jsonオブジェクト配列から2つのフィールドを取得する必要があることです。idフィールドとnameフィールドを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;
        }
    });

これは機能しません。どんな助けでも大歓迎です。

4

1 に答える 1

1

だから私はそれを理解します。

実際には本当に簡単です。オートコンプリート値となるフィールドには、「value」という名前のキーを指定する必要があります。したがって、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;
    }
});
于 2013-02-01T21:58:44.497 に答える