Sha256: db0d67f6e0a47f9df07cb363894a91e2b4bce1dbe45bc5dcb6db49875dfa1431
Contents?: true
Size: 988 Bytes
Versions: 5
Compression:
Stored size: 988 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'); var currentNr = 0; new Element('span.plus_button.qe_button.default_form_align', {text: '+'}) .inject(elem) .addEvent('click', function(e){ var newInput = template.clone(); 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') ); } 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
5 entries across 5 versions & 1 rubygems