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

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!

View solution in original post

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!