Advertisement
Guest User

jeditable sorted options

a guest
Feb 28th, 2011
1,174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
jQuery 1.23 KB | None | 0 0
  1. // type: select (based on 1.7.1, added feature: sorted options)
  2.     $.editable.addInputType("select", {
  3.         element : function(settings, original) {
  4.             var select = $('<select />');
  5.             $(this).append(select);
  6.             return(select);
  7.         },
  8.         content : function(data, settings, original) {
  9.             /* If it is string assume it is json. */
  10.             if (String == data.constructor) {      
  11.                     eval ('var json = ' + data);
  12.             } else {
  13.             /* Otherwise assume it is a hash already. */
  14.                     var json = data;
  15.             }
  16.            
  17.             var aData = [];
  18.             for (var key in json) {
  19.                 if (!json.hasOwnProperty(key)) {
  20.                     continue;
  21.                 }
  22.                 if ('selected' == key) {
  23.                     continue;
  24.                 }
  25.                    
  26.                 aData.push(json[key] + "||" + key);
  27.             }
  28.            
  29.             // Sort
  30.             aData.sort();
  31.            
  32.             // Create
  33.             for (var key in aData) {
  34.                 var aDataSplit = aData[key].split("||");
  35.                
  36.                 var option = $('<option />').val(aDataSplit[1]).append(aDataSplit[0]);
  37.                 $('select', this).append(option);    
  38.             }
  39.            
  40.             /* Loop option again to set selected. IE needed this... */
  41.             $('select', this).children().each(function() {
  42.                 if ($(this).val() == json['selected'] || $(this).text() == $.trim(original.revert)) {
  43.                     $(this).attr('selected', 'selected');
  44.                 }
  45.             });
  46.         }
  47.     });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement