Skip to content

Commit fcd6e1f

Browse files
committed
netteForms: processes only elements with 'data-nette-rules'
also eliminates validating each <input> in the checkboxlist separately
1 parent 75beaa0 commit fcd6e1f

File tree

1 file changed

+11
-22
lines changed

1 file changed

+11
-22
lines changed

src/assets/netteForms.js

Lines changed: 11 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@
216216
*/
217217
Nette.validateForm = function (sender, onlyCheck) {
218218
let form = sender.form || sender,
219-
scope = false;
219+
scope;
220220

221221
Nette.formErrors = [];
222222

@@ -230,31 +230,20 @@
230230
}
231231
}
232232

233-
let radios = {};
234-
235233
for (let elem of form.elements) {
236234
if (elem.willValidate && elem.validity.badInput) {
237235
elem.reportValidity();
238236
return false;
239237
}
240238
}
241239

242-
for (let elem of form.elements) {
243-
if (elem.tagName && !(elem.tagName.toLowerCase() in {input: 1, select: 1, textarea: 1, button: 1})) {
244-
continue;
245-
246-
} else if (elem.type === 'radio') {
247-
if (radios[elem.name]) {
248-
continue;
249-
}
250-
radios[elem.name] = true;
251-
}
252-
253-
if ((scope && !elem.name.replace(/]\[|\[|]|$/g, '-').match(scope)) || Nette.isDisabled(elem)) {
254-
continue;
255-
}
256-
257-
if (!Nette.validateControl(elem, null, onlyCheck) && !Nette.formErrors.length) {
240+
for (let elem of Array.from(form.elements)) {
241+
if (elem.getAttribute('data-nette-rules')
242+
&& (!scope || elem.name.replace(/]\[|\[|]|$/g, '-').match(scope))
243+
&& !Nette.isDisabled(elem)
244+
&& !Nette.validateControl(elem, null, onlyCheck)
245+
&& !Nette.formErrors.length
246+
) {
258247
return false;
259248
}
260249
}
@@ -600,9 +589,9 @@
600589
*/
601590
Nette.toggleForm = function (form, event) {
602591
formToggles = {};
603-
for (let i = 0; i < form.elements.length; i++) {
604-
if (form.elements[i].tagName.toLowerCase() in {input: 1, select: 1, textarea: 1, button: 1}) {
605-
Nette.toggleControl(form.elements[i], null, null, !event);
592+
for (let elem of Array.from(form.elements)) {
593+
if (elem.getAttribute('data-nette-rules')) {
594+
Nette.toggleControl(elem, null, null, !event);
606595
}
607596
}
608597

0 commit comments

Comments
 (0)