Ticket #7595: form_findFirstElement.diff
| File form_findFirstElement.diff, 2.5 kB (added by tdd, 2 years ago) |
|---|
-
test/unit/form.html
old new 90 90 <input type="text" /> 91 91 </form> 92 92 93 <form id="form_ffe"> 94 <p><input type="text" disabled="disabled" id="ffe_disabled" /></p> 95 <input type="hidden" id="ffe_hidden" /> 96 <input type="checkbox" id="ffe_checkbox" /> 97 </form> 98 99 <form id="form_ffe_ti"> 100 <p><input type="text" disabled="disabled" id="ffe_ti_disabled" /></p> 101 <input type="hidden" id="ffe_ti_hidden" /> 102 <input type="checkbox" id="ffe_ti_checkbox" /> 103 <input type="submit" id="ffe_ti_submit" tabindex="1" /> 104 </form> 105 106 <form id="form_ffe_ti2"> 107 <p><input type="text" disabled="disabled" id="ffe_ti2_disabled" /></p> 108 <input type="hidden" id="ffe_ti2_hidden" /> 109 <input type="checkbox" id="ffe_ti2_checkbox" tabindex="0" /> 110 <input type="submit" id="ffe_ti2_submit" tabindex="1" /> 111 </form> 112 93 113 <!-- Tests follow --> 94 114 <script type="text/javascript" language="javascript" charset="utf-8"> 95 115 // <![CDATA[ … … 251 271 assert(formInputs2 instanceof Array); 252 272 assert(formInputs2.all(function(input) { return (input.tagName == "INPUT"); })); 253 273 }}, 274 275 testFormFindFirstElement: function() {with(this) { 276 assertEqual($('ffe_checkbox'), $('form_ffe').findFirstElement()); 277 assertEqual($('ffe_ti_submit'), $('form_ffe_ti').findFirstElement()); 278 assertEqual($('ffe_ti2_checkbox'), $('form_ffe_ti2').findFirstElement()); 279 }}, 254 280 255 281 testFormSerialize: function() {with(this){ 256 282 assertEqual('tf_selectOne=&tf_textarea=&tf_text=&tf_hidden=&tf_password=', -
src/form.js
old new 72 72 }, 73 73 74 74 findFirstElement: function(form) { 75 return $(form).getElements().find(function(element) { 75 var elements = $(form).getElements().findAll(function(element) { 76 return 'hidden' != element.type && !element.disabled; 77 }); 78 var tiFirst = elements.findAll(function(element) { 79 return element.hasAttribute('tabIndex') && element.tabIndex >= 0; 80 }).sortBy(function(element) { return element.tabIndex; }).first(); 81 if (tiFirst) return tiFirst; 82 83 return elements.find(function(element) { 76 84 return element.type != 'hidden' && !element.disabled && 77 85 ['input', 'select', 'textarea'].include(element.tagName.toLowerCase()); 78 86 });