Changeset 6526
- Timestamp:
- 04/15/07 23:08:02 (1 year ago)
- Files:
-
- spinoffs/prototype/branches/form/src/form.js (modified) (5 diffs)
- spinoffs/prototype/branches/form/test/unit/form.html (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
spinoffs/prototype/branches/form/src/form.js
r6309 r6526 9 9 if (!element.disabled && element.name) { 10 10 var key = element.name, value = $(element).getValue(); 11 if (value != null) { 12 if (key in result) {11 if (value != null) { 12 if (key in result) { 13 13 if (result[key].constructor != Array) result[key] = [result[key]]; 14 14 result[key].push(value); … … 57 57 disable: function(form) { 58 58 form = $(form); 59 form.getElements().each(function(element) { 60 element.blur(); 61 element.disabled = 'true'; 62 }); 59 Form.getElements(form).invoke('disable'); 63 60 return form; 64 61 }, … … 66 63 enable: function(form) { 67 64 form = $(form); 68 form.getElements().each(function(element) { 69 element.disabled = ''; 70 }); 65 Form.getElements(form).invoke('enable'); 71 66 return form; 72 67 }, … … 161 156 disable: function(element) { 162 157 element = $(element); 158 element.blur(); 163 159 element.disabled = true; 164 160 return element; … … 167 163 enable: function(element) { 168 164 element = $(element); 169 element.blur();170 165 element.disabled = false; 171 166 return element; spinoffs/prototype/branches/form/test/unit/form.html
r6312 r6526 67 67 </div> 68 68 69 <form id="form_array"> 70 <input type="text" name="twin" value="" /> 69 <form id="form_array"> 70 <input type="text" name="twin" value="" /> 71 71 <input type="text" name="twin" value="siamese" /> 72 72 <!-- Rails checkbox hack with hidden input: --> 73 <input type="checkbox" id="checkbox_hack" name="checky" value="1" /> 73 <input type="checkbox" id="checkbox_hack" name="checky" value="1" /> 74 74 <input name="checky" type="hidden" value="0" /> 75 75 </form> … … 185 185 }}, 186 186 187 testFormEnabling: function(){ with(this) { 188 var form = $('form_focus') 189 var input1 = form.focus_disabled 190 var input2 = form.focus_text 191 192 assert(input1.disabled) 193 assert(!input2.disabled) 194 195 form.disable() 196 assert(input1.disabled) 197 assert(input2.disabled) 198 199 form.enable() 200 assert(!input1.disabled) 201 assert(!input2.disabled) 202 203 input1.disable() 204 assert(input1.disabled) 205 206 // non-form elements: 207 var fieldset = $('form_fieldset') 208 var fields = fieldset.immediateDescendants() 209 assert(fields.all(function(select){ return !select.disabled })) 210 211 Form.disable(fieldset) 212 assert(fields.all(function(select){ return select.disabled })) 213 214 Form.enable(fieldset) 215 assert(fields.all(function(select){ return !select.disabled })) 216 }}, 217 187 218 testFormElementEnabling: function(){ with(this) { 188 219 assert($('input_disabled').disabled); … … 283 314 284 315 // Checks that select-related serializations work just fine 285 assertEqual('vu=1&vm%5B%5D=1&vm%5B%5D=3&nvu=One&nvm%5B%5D=One&nvm%5B%5D=Three&evu=&evm%5B%5D=&evm%5B%5D=Three', Form.serialize('form_selects')); 286 287 // should not eat empty values for duplicate names 288 $('checkbox_hack').checked = false 289 var data = Form.serialize('form_array', true) 290 assertEnumEqual(['', 'siamese'], data['twin']) 291 assertEqual('0', data['checky']) 292 $('checkbox_hack').checked = true 293 assertEnumEqual($w('1 0'), Form.serialize('form_array', true)['checky']) 316 assertEqual('vu=1&vm%5B%5D=1&vm%5B%5D=3&nvu=One&nvm%5B%5D=One'+ 317 '&nvm%5B%5D=Three&evu=&evm%5B%5D=&evm%5B%5D=Three', 318 Form.serialize('form_selects')); 319 320 // should not eat empty values for duplicate names 321 $('checkbox_hack').checked = false; 322 var data = Form.serialize('form_array', true); 323 assertEnumEqual(['', 'siamese'], data['twin']); 324 assertEqual('0', data['checky']); 325 326 $('checkbox_hack').checked = true; 327 assertEnumEqual($w('1 0'), Form.serialize('form_array', true)['checky']); 294 328 }}, 295 329