Date Field Validation
I have formatted a text field into a Date format in the yyyy-mm-dd format.
This input for this text field is then used for a seperate calculation so its important the user only enters in the above format.
The above format works but there are two corner cases:
Corner case 1:
If the user enters 2024-05-5 it will autocorrect to 2024-05-05. While the displayed value is correct the user input is wrong and it affects other calculations. To fix this i added validation code to force user to enter at least 10 charachters.
var minAllowedChars = 10;
if (event.value.length>0 && event.value.length<minAllowedChars) {
app.alert("Invalid date format");
event.rc = false;
}
Corner case 2:
The second issue is if the user enters blanks. For ex. if the user enters "2024-03-4 " it will autocorrect to 2024-03-04. While the displayed value is correct the user input is wrong and it affects other calculations. I tired to add validation code to not allow spaces to be entered but it doesnt seem to work correctly. For some reason the below code only works on what was already entered and not on what is newly entered.
var a = this.getField("Date").value;
var a1 = a.substr(0,1);
var a2 = a.substr(1,1);
var a3 = a.substr(2,1);
var a4 = a.substr(3,1);
var a5 = a.substr(4,1);
var a6 = a.substr(5,1);
var a7 = a.substr(6,1);
var a8 = a.substr(7,1);
var a9 = a.substr(8,1);
var a10 = a.substr(9, 1);
if (event.value.length > 9){
if (a1 == " " || a2 == " " || a3 == " " || a4 == " " || a5 == " " || a6 == " " || a7 == " " || a8 == " " || a9 == " " || a10 == " "){
app.alert("Invalid date format");
event.rc =false;
}
}
