Sha256: 104d731c92b4c06faefa45a4fcccb9cc521747f01cc7be054a65ebc534c82aef

Contents?: true

Size: 1.14 KB

Versions: 15

Compression:

Stored size: 1.14 KB

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('.array_fields').clone();
		var currentNr = 0;
		
		new Element('span.plus_button.qe_button.default_form_align', {text: '+'})
			.inject(elem)
			.addEvent('click', function(e){
			  var holder = template.clone();
				var newInput = (holder.getElement('input') || holder).erase('value');
				var arrayI = newInput.get('name').match(/.+?\[(\d+)\].+/);
				if (arrayI && arrayI[1]) {
					currentNr += 1;
					newInput.set('name',
						newInput.get('name')
							.replace(/(.+?\[)\d+(\].+)/, '$1'+(parseInt(arrayI[1], 10)+currentNr)+'$2')
					);
				}
				holder.inject(e.target, 'before');
				window.fireEvent('bhfDomChunkReady', [holder]);
			});
		
		elem.getParent('form').addEvent('submit', function(){
			elem.getElements('.array_fields').each(function(fieldElem){
				var input = (fieldElem.getElement('input') || fieldElem);
				if (input.value) { return; }
				input.erase('name');
			});
			return true;
		});
	}
});

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
bhf-0.10.12 app/assets/javascripts/bhf/classes/ArrayFields.js
bhf-0.10.11 app/assets/javascripts/bhf/classes/ArrayFields.js
bhf-0.10.10 app/assets/javascripts/bhf/classes/ArrayFields.js
bhf-0.10.9 app/assets/javascripts/bhf/classes/ArrayFields.js
bhf-0.9.9 app/assets/javascripts/bhf/classes/ArrayFields.js
bhf-0.9.8 app/assets/javascripts/bhf/classes/ArrayFields.js
bhf-0.9.7 app/assets/javascripts/bhf/classes/ArrayFields.js
bhf-0.9.6 app/assets/javascripts/bhf/classes/ArrayFields.js
bhf-0.9.5 app/assets/javascripts/bhf/classes/ArrayFields.js
bhf-0.9.4 app/assets/javascripts/bhf/classes/ArrayFields.js
bhf-0.9.3 app/assets/javascripts/bhf/classes/ArrayFields.js
bhf-0.9.2 app/assets/javascripts/bhf/classes/ArrayFields.js
bhf-0.9.1 app/assets/javascripts/bhf/classes/ArrayFields.js
bhf-0.9.0 app/assets/javascripts/bhf/classes/ArrayFields.js
bhf-0.8.7 app/assets/javascripts/bhf/classes/ArrayFields.js