Revision 8ee89b95
Von Kivitendo Admin vor fast 10 Jahren hinzugefügt
js/common.js | ||
---|---|---|
64 | 64 |
if(input_name.value == "") { |
65 | 65 |
return true; |
66 | 66 |
} |
67 |
|
|
68 |
if ( ( input_name.value.match(/^\d+$/ ) ) && !(dateFormat.lastIndexOf("y") == 3) ) { |
|
69 |
// date shortcuts for entering date without separator for three date styles, e.g. |
|
70 |
// 31122014 -> 12.04.2014 |
|
71 |
// 12312014 -> 12/31/2014 |
|
72 |
// 31122014 -> 31/12/2014 |
|
73 |
|
|
74 |
if (input_name.value.match(/^\d{8}$/)) { |
|
75 |
input_name.value = input_name.value.replace(/^(\d\d)(\d\d)(\d\d\d\d)$/, "$1" + seperator + "$2" + seperator + "$3") |
|
76 |
} else if (input_name.value.match(/^\d{6}$/)) { |
|
77 |
// 120414 -> 12.04.2014 |
|
78 |
input_name.value = input_name.value.replace(/^(\d\d)(\d\d)(\d\d)$/, "$1" + seperator + "$2" + seperator + "$3") |
|
79 |
} else if (input_name.value.match(/^\d{4}$/)) { |
|
80 |
// 1204 -> 12.04.2014 |
|
81 |
var today = new Date(); |
|
82 |
var year = today.getYear(); |
|
83 |
if (year < 999) year += 1900; |
|
84 |
input_name.value = input_name.value.replace(/^(\d\d)(\d\d)$/, "$1" + seperator + "$2"); |
|
85 |
input_name.value = input_name.value + seperator + year; |
|
86 |
} else if ( input_name.value.match(/^\d{1,2}$/ ) ) { |
|
87 |
// assume the entry is the day of the current month and current year |
|
88 |
var today = new Date(); |
|
89 |
var day = input_name.value; |
|
90 |
var month = today.getMonth() + 1; |
|
91 |
var year = today.getYear(); |
|
92 |
if( day.length == 1 && day < 10) { |
|
93 |
day='0'+day; |
|
94 |
}; |
|
95 |
if(month<10) { |
|
96 |
month='0'+month; |
|
97 |
}; |
|
98 |
if (year < 999) year += 1900; |
|
99 |
if ( dateFormat.lastIndexOf("d") == 1) { |
|
100 |
input_name.value = day + seperator + month + seperator + year; |
|
101 |
} else { |
|
102 |
input_name.value = month + seperator + day + seperator + year; |
|
103 |
} |
|
104 |
}; |
|
105 |
} |
|
106 |
|
|
67 | 107 |
var matching = new RegExp(dateFormat.replace(/\w/g, '\\d') + "\$","ig"); |
68 | 108 |
if(!(dateFormat.lastIndexOf("y") == 3) && !matching.test(input_name.value)) { |
69 | 109 |
matching = new RegExp(dateFormat.replace(/\w/g, '\\d') + '\\d\\d\$', "ig"); |
Auch abrufbar als: Unified diff
Schnelle Datumseingabe ohne Trenner
Buchhalter sind es gewohnt, das Datum im Nummernblock ohne Punkte
Mit diesem Patch wird im Datumsfeld noch vor der Prüfung auf ein gültigeseingeben zu können, z.B. wird aus
01122014 -> 01.12.2014
Datumsformat per Javascript geprüft, ob
Trifft dies zu, werden am Beispiel für den Fall dd.mm.yy folgende
Umwandlungen durchgeführt:
Nach der Umwandlung findet wie bisher eine (simple) Plausibilitätsprüfung des
Datums per Javascript statt. Sollte das Datumsfeld andere Datumsfelder
beeinflussen, wie z.B. das Rechnungsdatum das Fälligkeitsdatum im Ein-
und Verkauf durch ein onChange, muß hier eventuell mit einem setTimeOut
gearbeitet werden, da ansonsten der Wert vor der Umwandlung genommen
wird.