Revision aaa71ae8
Von Sven Schöling vor etwa 7 Jahren hinzugefügt
js/kivi.Validator.js | ||
---|---|---|
31 | 31 |
|
32 | 32 |
ns.validate = function($e) { |
33 | 33 |
var tests = $e.data('validate').split(/ +/); |
34 |
var args; |
|
34 | 35 |
|
35 | 36 |
for (var test_idx in tests) { |
36 | 37 |
var test = tests[test_idx]; |
38 |
|
|
39 |
var has_args = /^(\w+)\((.*)\)$/.exec(test); |
|
40 |
if (has_args) { |
|
41 |
test = has_args[1]; |
|
42 |
args = has_args[2].split(/,/); |
|
43 |
} else { |
|
44 |
args = []; |
|
45 |
} |
|
46 |
|
|
37 | 47 |
if (!ns.checks[test]) |
38 | 48 |
continue; |
39 | 49 |
|
40 | 50 |
if (ns.checks[test]) { |
41 |
if (!ns.checks[test]($e))
|
|
51 |
if (!ns.checks[test].apply(undefined, [$e].concat(args)))
|
|
42 | 52 |
return false; |
43 | 53 |
} else { |
44 | 54 |
var error = "kivi.validate_form: unknown test '" + test + "' for element ID '" + $e.prop('id') + "'"; |
... | ... | |
61 | 71 |
return true; |
62 | 72 |
} |
63 | 73 |
}, |
64 |
number: function($e) { |
|
74 |
number: function($e, places) {
|
|
65 | 75 |
var number_string = $e.val(); |
66 | 76 |
|
67 | 77 |
var parsed_number = kivi.parse_amount(number_string); |
... | ... | |
76 | 86 |
return false; |
77 | 87 |
} else |
78 | 88 |
{ |
79 |
var formatted_number = kivi.format_amount(parsed_number); |
|
89 |
var formatted_number = kivi.format_amount(parsed_number, places);
|
|
80 | 90 |
if (formatted_number != number_string) |
81 | 91 |
$e.val(formatted_number); |
82 | 92 |
ns.annotate($e); |
Auch abrufbar als: Unified diff
Validator: experimentelle Parametersyntax für validator checks
Solch ein check:
wird weiter an den validator "number" dispatcht, reicht aber die
Argumente weiter:
Vorsicht, das ist kein vollständiges Parsing. Es wird einfach nur der
Inhalt der Klammern am Komma gesplittet. Leerzeichen sind bereits belegt
um mehrere Checks zu unterscheiden, also darf zwischen den Argumenten
kein Whitespace stehen. Escaping von Argumenten in denen "," vorkommt
gibt es auch nicht.