|
16 | 16 | required += '#' + $(field).html() + ','; |
17 | 17 | }); |
18 | 18 | var fields = fieldset.find(required); |
19 | | - config.fields = fields; |
| 19 | + config.basefields = fields; |
20 | 20 | } |
21 | 21 |
|
22 | 22 | config.showOn = $('#' + fieldset.find('.showAttachsOn').html()); |
|
50 | 50 | } |
51 | 51 | config.fields.each(function() { |
52 | 52 | var field = $(this); |
53 | | - var newcontainer= $(this).parents('.field').clone(); |
54 | | - var newfield = newcontainer.find('#' + field.attr('id')); |
55 | | - newcontainer.hide(); |
56 | | - newfield.attr('name', newfield.attr('name') + '_' + count); |
57 | | - newcontainer.attr('id', 'container_id_' + newfield.attr('name')); |
58 | | - newcontainer.insertBefore(button.parents('.field')); |
59 | | - if (newcontainer.find(':file').length) { |
60 | | - html += ' (' + newfield.val() + ')'; |
| 53 | + var container= $(this).parents('.field'); |
| 54 | + if (container.find(':file').length) { |
| 55 | + html += ' (' + field.val() + ')'; |
61 | 56 | } else { |
62 | | - html += ' ' + newfield.val(); |
| 57 | + html += ' ' + field.val(); |
63 | 58 | } |
64 | 59 | html += '<span style="display: none;" class="removeField">'; |
65 | | - html += newcontainer.attr('id'); |
| 60 | + html += container.attr('id'); |
66 | 61 | html += '</span>'; |
| 62 | + container.hide(); |
67 | 63 | }); |
68 | 64 | html += ' <a href="#" class="removeAttach">Remove</a>'; |
69 | 65 | html += '</div>'; |
70 | 66 | config.showOnDisplay.html(html); |
71 | | - config.fields.val(''); |
72 | 67 | count += 1; |
| 68 | + initFileInput(); |
73 | 69 | }; |
74 | 70 |
|
75 | 71 | var doAttach = function() { |
|
93 | 89 | }; |
94 | 90 |
|
95 | 91 | var initTriggers = function() { |
96 | | - config.fields.change(setState); |
97 | | - config.fields.keyup(setState); |
98 | 92 | config.showOnDisplay.find('a.removeAttach').live('click', removeAttachment); |
99 | 93 | button.click(doAttach); |
100 | 94 | }; |
101 | 95 |
|
| 96 | + var initFileInput = function() { |
| 97 | + var fieldids = '' |
| 98 | + config.basefields.each(function(i) { |
| 99 | + var field = $(this); |
| 100 | + var oldcontainer= $(this).parents('.field'); |
| 101 | + var newcontainer= oldcontainer.clone(); |
| 102 | + var newfield = newcontainer.find('#' + field.attr('id')); |
| 103 | + newfield.attr('name', newfield.attr('name') + '_' + count); |
| 104 | + newfield.attr('id', newfield.attr('id') + '_' + count); |
| 105 | + newcontainer.attr('id', 'container_id_' + newfield.attr('name')); |
| 106 | + oldcontainer.after(newcontainer); |
| 107 | + oldcontainer.hide(); |
| 108 | + newcontainer.show(); |
| 109 | + fieldids += '#' + newfield.attr('id') + ',' |
| 110 | + }); |
| 111 | + config.fields = $(fieldids); |
| 112 | + config.fields.change(setState); |
| 113 | + config.fields.keyup(setState); |
| 114 | + }; |
| 115 | + |
102 | 116 | var initWidget = function() { |
103 | 117 | readConfig(); |
| 118 | + initFileInput(); |
104 | 119 | initTriggers(); |
105 | 120 | setState(); |
106 | 121 | }; |
|
0 commit comments