Sha256: f0317d2a3e8b2afc007716f6a06118597bd613ef19875131e5ff742a3e668b33

Contents?: true

Size: 1.24 KB

Versions: 92

Compression:

Stored size: 1.24 KB

Contents

var MultipleFields = new Class({
	version: 0.1,

	options: {
		spliter: ';'
	},

	// Implements: [Options, Events],

	initialize: function(_object, _options) {
		if ( ! _object) { return; }
		// this.setOptions(_options);
		if (_object.get('data-spliter')) {
			this.options.spliter = _object.get('data-spliter');
		}

 		var elem = _object;
		var template = elem.clone()
			.erase('name').erase('id').erase('data-spliter').erase('value')
			.addClass('template');

		elem.set('type', 'hidden');

		new Element('span.add_field', {text: '+'})
			.inject(elem, 'after')
			.addEvent('click', function(e){
				this.addField(elem, template);
			}.bind(this));

		elem.get('value').toString().split(this.options.spliter).each(function(data){
			this.addField(elem, template, data);
		}.bind(this));
	},
	
	addField: function(elem, template, data){
		template
			.clone()
			.set('value', data)
			.addEvent('change', function(e){
				var values = [];
				e.target.getParent('.input').getElements('.template').each(function(template){
					if (template.value.trim()) {
						values.push(template.value.trim());
					}
				});
				elem.set('value', values.join(this.options.spliter));
			}.bind(this))
			.inject(elem.getParent('.input').getElement('.add_field'), 'before');
	}
});

Version data entries

92 entries across 92 versions & 1 rubygems

Version Path
bhf-0.6.3 vendor/assets/javascripts/bhf/classes/MultipleFields.js
bhf-0.6.2 vendor/assets/javascripts/bhf/classes/MultipleFields.js
bhf-0.6.1 vendor/assets/javascripts/bhf/classes/MultipleFields.js
bhf-0.6.0 vendor/assets/javascripts/bhf/classes/MultipleFields.js
bhf-0.5.13 vendor/assets/javascripts/bhf/classes/MultipleFields.js
bhf-0.5.12 vendor/assets/javascripts/bhf/classes/MultipleFields.js
bhf-0.5.11 vendor/assets/javascripts/bhf/classes/MultipleFields.js
bhf-0.5.10 vendor/assets/javascripts/bhf/classes/MultipleFields.js
bhf-0.5.9 vendor/assets/javascripts/bhf/classes/MultipleFields.js
bhf-0.5.8 vendor/assets/javascripts/bhf/classes/MultipleFields.js
bhf-0.5.7 vendor/assets/javascripts/bhf/classes/MultipleFields.js
bhf-0.5.6 vendor/assets/javascripts/bhf/classes/MultipleFields.js
bhf-0.5.5 vendor/assets/javascripts/bhf/classes/MultipleFields.js
bhf-0.5.4 vendor/assets/javascripts/bhf/classes/MultipleFields.js
bhf-0.5.3 vendor/assets/javascripts/bhf/classes/MultipleFields.js
bhf-0.5.2 vendor/assets/javascripts/bhf/classes/MultipleFields.js
bhf-0.5.1 vendor/assets/javascripts/bhf/classes/MultipleFields.js
bhf-0.5.0 vendor/assets/javascripts/bhf/classes/MultipleFields.js
bhf-0.4.36 vendor/assets/javascripts/bhf/classes/MultipleFields.js
bhf-0.4.35 vendor/assets/javascripts/bhf/classes/MultipleFields.js