|
29 | 29 | 'use strict'; |
30 | 30 |
|
31 | 31 | var Nette = {}; |
| 32 | + var preventFiltering = {}; |
32 | 33 | var formToggles = {}; |
33 | 34 |
|
34 | 35 | Nette.formErrors = []; |
|
120 | 121 | val = ''; |
121 | 122 | } |
122 | 123 | } |
123 | | - if (filter) { |
| 124 | + if (filter && preventFiltering[elem.name] === undefined) { |
| 125 | + preventFiltering[elem.name] = true; |
124 | 126 | var ref = {value: val}; |
125 | 127 | Nette.validateControl(elem, null, true, ref); |
126 | 128 | val = ref.value; |
| 129 | + delete preventFiltering[elem.name]; |
127 | 130 | } |
128 | 131 | return val; |
129 | 132 | }; |
|
297 | 300 | }; |
298 | 301 |
|
299 | 302 |
|
300 | | - var preventFiltering = false; |
301 | | - |
302 | 303 | /** |
303 | 304 | * Validates single rule. |
304 | 305 | */ |
|
312 | 313 | op = op.replace(/\\/g, ''); |
313 | 314 |
|
314 | 315 | 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); |
322 | 320 | } |
323 | | - preventFiltering = false; |
324 | 321 | } |
| 322 | + |
325 | 323 | return Nette.validators[op] |
326 | 324 | ? Nette.validators[op](elem, Array.isArray(arg) ? arr : arr[0], value.value, value) |
327 | 325 | : null; |
|
0 commit comments