Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.
SOLVED

date format as MM/DD/YYYY?

Avatar

Level 7

How I can force a user to enter in a text field date format as MM/DD/YYYY?

Thanks

1 Accepted Solution

Avatar

Correct answer by
Level 10

You can use FormCalc to check, if the entered text is a valid date.

Add this script in the exit event of your text field. Ensure the selected programming language is FormCalc not JavaScript.

if (Date2Num(Parse("DD/MM/YYYY", $), "YYYY-MM-DD") eq 0) then

  if ($host.messageBox("Enter a Date in the format DD/MM/YYYY.", "Wrong Date", 0, 0) eq 1) then

  $host.setFocus($.somExpression)

  endif

endif

View solution in original post

5 Replies

Avatar

Level 2

Use the validation pattern: date{MM/DD/YYYY}

Avatar

Level 7

The field I am using is a text field not a date filed.

I need a script to notify users in order to enter the correct format.

Thank you

Avatar

Level 2

If you're trying to enter a date I don't see why you would want to use a text field over a date field. However, if you absolutely need a text field you could use regex in the validate event like so:

if (!(this.isNull || this.rawValue.length == 0)) {

  //Test for MM/DD/YYYY format

  var pattern = new RegExp("^(0[1-9]|1[0-2])\/(0[1-9]|1\d|2\d|3[01])\/\d{4}$","g");

  var isMatch = pattern.test(this.rawValue);

  if(!isMatch)

       xfa.host.messageBox("The date you entered is in an incorrect format", "Error");

}

//Disables validation trigger

true;

To reiterate, I highly discourage you from using this method. It is incomplete since you can still enter dates like 02/30/2000 which would obviously be invalid.

Avatar

Level 7

Hi, I am using this method(text field) because users they have to enter their date of birth. I do not know any other method..to use.

Is it possible to modify the script to enter the date as DD/MM/YYYY?

Thank you very much

Avatar

Correct answer by
Level 10

You can use FormCalc to check, if the entered text is a valid date.

Add this script in the exit event of your text field. Ensure the selected programming language is FormCalc not JavaScript.

if (Date2Num(Parse("DD/MM/YYYY", $), "YYYY-MM-DD") eq 0) then

  if ($host.messageBox("Enter a Date in the format DD/MM/YYYY.", "Wrong Date", 0, 0) eq 1) then

  $host.setFocus($.somExpression)

  endif

endif