Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $.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');
- }
- });
- }
- });
- $('.editable').editable('http://www.example.com/save.php', {
- data : " {'E':'Letter E','F':'Letter F','G':'Letter G', 'selected':'F'}",
- type : 'select',
- submit : 'OK'
- });
Advertisement
Add Comment
Please, Sign In to add comment