Sha256: 8dc3414ac9231296fbdcdf52a2ab7c2f11035ff3a7f8c53bdca02d0d4aa7852b

Contents?: true

Size: 909 Bytes

Versions: 6

Compression:

Stored size: 909 Bytes

Contents

var ArrayFields = new Class({
	version: 0.1,

	// Implements: [Options, Events],

	initialize: function(_object, _options) {
		if ( ! _object) { return; }
		// this.setOptions(_options);
		var elem = _object;
		var template = elem.getElement('input').clone().erase('value');
		new Element('span.add_field', {text: '+'})
			.inject(elem)
			.addEvent('click', function(e){
				var newInput = template.clone();
				
				var arrayI = newInput.get('name').match(/.+?\[(\d+)\].+/);
				if (arrayI && arrayI[1]) {
					newInput.set('name',
						newInput.get('name')
							.replace(/(.+?\[)\d+(\].+)/, '$1'+(parseInt(arrayI[1], 10)+1)+'$2')
					);
				}
				newInput.inject(e.target, 'before');
			});
		
		elem.getParent('form').addEvent('submit', function(){
			elem.getElements('.array_fields').each(function(input){
				if (input.value) { return; }
				input.erase('name');
			});
			return true;
		});
	}
});

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
bhf-0.4.18 vendor/assets/javascripts/bhf/classes/ArrayFields.js
bhf-0.4.17 vendor/assets/javascripts/bhf/classes/ArrayFields.js
bhf-0.4.16 vendor/assets/javascripts/bhf/classes/ArrayFields.js
bhf-0.4.15 vendor/assets/javascripts/bhf/classes/ArrayFields.js
bhf-0.4.14 vendor/assets/javascripts/bhf/classes/ArrayFields.js
bhf-0.4.13 vendor/assets/javascripts/bhf/classes/ArrayFields.js