| 
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