Expand my Community achievements bar.

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!