Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

Adobe Summit 2023 [19th to 23rd March, Las Vegas and Virtual] | Complete AEM Session & Lab list
SOLVED

Javascript for 5 or 9 zip code?

Avatar

Level 2

I have a form where I want to do a five to nine zip code; if the user inputs anything else, it is will be deemed invalid and the field will be empty when the user presses "enter."

So far, in the change event, I have the following script that only allows 9 digits, meaning the user cannot input more than 9 digits:

     var maxLength = 9;

     if(xfa.event.newText.length >maxLength)xfa.event.change = "";

Then in the exit event, I have the following script that only allows numerical digits:

if(this.rawValue==null){this.execValidate();}

if (!/^[0-9]{5,9}$/i.exec(this.rawValue)) {

  this.rawValue= null;

}

The problem is that it's still allowing entries like "123456" or "1234567" or "12345678." I only want users to be able to enter a 5-digit or 9-digit zip code.

Please let me know if there is anything I can do to resolve this issue.

1 Accepted Solution

Avatar

Correct answer by
Level 2

I have the nine-digit pattern set up in LiveCycle (e.g.,12345-1234), so I revised the code a bit and it shows up: if(!/^\d{5}(\d{4})?$/.test(this.rawValue))

Thanks!

3 Replies

Avatar

Level 7

You can use a string length and compare the input.

var str = field1.rawValue

var n = str.length

if(n != 5 || n != 9){

message...

field2.rawValue = ""

}

Avatar

Level 7

this actually works I used it on Validate

if(!/^\d{5}(-\d{4})?$/.test(this.rawValue))

Avatar

Correct answer by
Level 2

I have the nine-digit pattern set up in LiveCycle (e.g.,12345-1234), so I revised the code a bit and it shows up: if(!/^\d{5}(\d{4})?$/.test(this.rawValue))

Thanks!