Skip to content

Commit c9e972a

Browse files
committed
netteForms: preventFiltering used for getEffectiveValue() instead of validateRule() [Closes #161][Closes #143]
should be better solution than 94c47d5
1 parent 37a9490 commit c9e972a

File tree

1 file changed

+9
-11
lines changed

1 file changed

+9
-11
lines changed

src/assets/netteForms.js

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
'use strict';
3030

3131
var Nette = {};
32+
var preventFiltering = {};
3233
var formToggles = {};
3334

3435
Nette.formErrors = [];
@@ -120,10 +121,12 @@
120121
val = '';
121122
}
122123
}
123-
if (filter) {
124+
if (filter && preventFiltering[elem.name] === undefined) {
125+
preventFiltering[elem.name] = true;
124126
var ref = {value: val};
125127
Nette.validateControl(elem, null, true, ref);
126128
val = ref.value;
129+
delete preventFiltering[elem.name];
127130
}
128131
return val;
129132
};
@@ -297,8 +300,6 @@
297300
};
298301

299302

300-
var preventFiltering = false;
301-
302303
/**
303304
* Validates single rule.
304305
*/
@@ -312,16 +313,13 @@
312313
op = op.replace(/\\/g, '');
313314

314315
var arr = Array.isArray(arg) ? arg.slice(0) : [arg];
315-
if (!preventFiltering) {
316-
preventFiltering = true;
317-
for (var i = 0, len = arr.length; i < len; i++) {
318-
if (arr[i] && arr[i].control) {
319-
var control = elem.form.elements.namedItem(arr[i].control);
320-
arr[i] = control === elem ? value.value : Nette.getEffectiveValue(control, true);
321-
}
316+
for (var i = 0, len = arr.length; i < len; i++) {
317+
if (arr[i] && arr[i].control) {
318+
var control = elem.form.elements.namedItem(arr[i].control);
319+
arr[i] = control === elem ? value.value : Nette.getEffectiveValue(control, true);
322320
}
323-
preventFiltering = false;
324321
}
322+
325323
return Nette.validators[op]
326324
? Nette.validators[op](elem, Array.isArray(arg) ? arr : arr[0], value.value, value)
327325
: null;

0 commit comments

Comments
 (0)