سؤال

أنا أستخدم الممتاز جيد البرنامج المساعد لبعض التحرير في مكانه على صفحتي. هناك بقعة واحدة أحتاج إلى عنصر محدد متعدد. هل هناك مكون إضافي قابل للجيدر يسمح لي بالقيام بذلك؟

كنت أحاول استخدام جيد API المكون الإضافي الخاص للمؤلف لإنشاء مكون إضافي متعدد المنصات ، ولكن لا يوجد نرد حتى الآن. لا يبدو أن هناك وثائقًا كافية حول ما تفعله كل وظيفة في واجهة برمجة التطبيقات. ويبدو أن كل مكون إضافي على سبيل المثال يوفره يعتمد على الإضافات الأخرى jQuery. أنا فقط بحاجة إلى عنصر محدد متعدد الأساس ...

هل كانت مفيدة؟

المحلول

لقد قدمت رقعة صغيرة لاقتراح كاليان الذي تسبب في عدم العمل بدون خيار "المحدد" الاختياري ، ولم يسبق له مثيل سمة الحجم. ثم قمت بتعديله ليكون مكونًا إضافيًا قابلاً للتطبيق بدلاً من شيء عليك لصقه في Jedable نفسه. أنا أستخدم هذا حاليًا على موقع ويب عميل ، على الرغم من أنني أستخدمه حصريًا ملءًا بواسطة سلسلة 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');
            }
        });
    }
});

نصائح أخرى

لقد كنت أبحث عن نفس الشيء. محاولة تحقيق ذلك ، ولكن لا شيء يبدو أنه يعمل.

بالمناسبة ، وجدت هذا ولكن هذا لا يبدو أنه يعمل أيضًا - http://pastebin.com/cbdndv5h

البرنامج المساعد Jedable تفعل هذا. مثال:

$('.editable').editable('http://www.example.com/save.php', { 
 data   : " {'E':'Letter E','F':'Letter F','G':'Letter G', 'selected':'F'}",
 type   : 'select',
 submit : 'OK'
});
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top