3

ページのインプレース編集に優れたjEditableプラグインを使用しています。複数選択要素が必要な場所が 1 つあります。これを可能にする jEditable プラグインはありますか?

jEditable作成者のプラグイン API を使用して、独自の複数選択プラグインを作成しようとしてきましたが、これまでのところダイスはありません。API で各関数が何をするかについての十分なドキュメントがないようです。そして、彼が提供するすべてのサンプル プラグインは、他の jQuery プラグインに依存しているようです。基本的な複数選択要素が必要なだけです...

4

3 に答える 3

2

オプションの「選択された」オプションなしでは動作しない原因となる Kalyan の提案に小さなパッチを作成し、サイズ属性をハードコーディングしませんでした。次に、jEditable 自体に貼り付ける必要があるものではなく、jEditable プラグインになるように変更しました。私は現在、これを顧客の Web サイトで使用していますが、json 文字列のみを使用して使用しているため、他の方法にはまだバグがある可能性があります。

$.editable.addInputType("multiselect", {
    element: function (settings, original) {
        var select = $('<select multiple="multiple" />');

        if (settings.width != 'none') { select.width(settings.width); }
        if (settings.size) { select.attr('size', settings.size); }

        $(this).append(select);
        return (select);
    },
    content: function (data, settings, original) {
        /* If it is string assume it is json. */
        if (String == data.constructor) {
            eval('var json = ' + data);
        } else {
            /* Otherwise assume it is a hash already. */
            var json = data;
        }
        for (var key in json) {
            if (!json.hasOwnProperty(key)) {
                continue;
            }
            if ('selected' == key) {
                continue;
            }
            var option = $('<option />').val(key).append(json[key]);
            $('select', this).append(option);
        }

        if ($(this).val() == json['selected'] ||
                            $(this).html() == $.trim(original.revert)) {
            $(this).attr('selected', 'selected');
        }

        /* Loop option again to set selected. IE needed this... */
        $('select', this).children().each(function () {
            if (json.selected) {
                var option = $(this);
                $.each(json.selected, function (index, value) {
                    if (option.val() == value) {
                        option.attr('selected', 'selected');
                    }
                });
            } else {
                if (original.revert.indexOf($(this).html()) != -1)
                    $(this).attr('selected', 'selected');
            }
        });
    }
});
于 2010-11-23T18:51:14.817 に答える
1

私も同じものを探してきました。それを達成しようとしていますが、何もうまくいかないようです。

ちなみに、私はこれを見つけましたが、これもうまくいかないようです - http://pastebin.com/cbDndv5h

于 2010-07-27T16:25:01.847 に答える
-1

jeditableプラグインはこれを行います。例:

$('.editable').editable('http://www.example.com/save.php', { 
 data   : " {'E':'Letter E','F':'Letter F','G':'Letter G', 'selected':'F'}",
 type   : 'select',
 submit : 'OK'
});
于 2010-07-28T21:44:26.970 に答える