Expand my Community achievements bar.

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