django1/django/contrib/admin/media/js/prepopulate.js

35 lines
1.2 KiB
JavaScript

(function($) {
$.fn.prepopulate = function(dependencies, maxLength) {
/*
Depends on urlify.js
Populates a selected field with the values of the dependent fields,
URLifies and shortens the string.
dependencies - selected jQuery object of dependent fields
maxLength - maximum length of the URLify'd string
*/
return this.each(function() {
var field = $(this);
field.data('_changed', false);
field.change(function() {
field.data('_changed', true);
});
var populate = function () {
// Bail if the fields value has changed
if (field.data('_changed') == true) return;
var values = [];
dependencies.each(function() {
if ($(this).val().length > 0) {
values.push($(this).val());
}
});
field.val(URLify(values.join(' '), maxLength));
};
dependencies.keyup(populate).change(populate).focus(populate);
});
};
})(django.jQuery);