Skip to content

Instantly share code, notes, and snippets.

@kotobukid
Created December 10, 2012 08:22
Show Gist options
  • Save kotobukid/4249323 to your computer and use it in GitHub Desktop.
Save kotobukid/4249323 to your computer and use it in GitHub Desktop.
(function (_) {
"use strict";
// usage: $("select[name="year]").html($(_.year({current: 2029})));
var TEMPLATE = '<% if(empty) { %><option></option><% }; _.each(years, function(year) { %><option value="<%= year.year %>"><%= year.year %>年</option> <% }); %>';
var _TEMPLATE = '<% if(empty) { %><option></option><% }; _.each(years, function(year) { %><option value="<%= year.year %>" <%= year.select %>><%= year.year %>年</option> <% }); %>';
_.mixin({
year: function (options) {
var settings;
settings = _.extend({
current: 2012,
empty: true,
past: 20,
future: 40,
select: false
}, options || {});
settings.current = Number(settings.current);
return _.template((function (sel) {
if (sel) {
return _TEMPLATE;
} else {
return TEMPLATE;
}
}(settings.select)), {
years: _.map(_.range(settings.current - settings.past, settings.current + settings.future), function (item) {
if (item === settings.current) {
return {year: item, select: 'selected'};
} else {
return {year: item, select: ''};
}
}),
empty: settings.empty,
current: settings.current
});
}
});
}(_));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment