John Nimis
John Nimis

Reputation: 606

Trouble adding data-parsley-pattern programmatically

I'm using Parsley, and it's great! I want to add different validators programmatically, depending on locale, using javascript/JQuery. When I hard-code like so:

<input type="text" id="billingPostalCode" 
name="userInput_billingPostalCode" 
value='<c:out value="${param.billingPostalCode}"></c:out>' 
class="form-control" required="" 
data-parsley-pattern="^\d{5}(?:[-\s]\d{4})?$" 
data-parsley-error-message="Valid Zip/Postal Code Required"></input>

it works great. However, when I try to add it programmatically, it doesn't. I have this in a .jsp file:

<input type="text" id="billingPostalCode" 
value='<c:out value="${param.billingPostalCode}"></c:out>' 
class="form-control" required="" 
data-parsley-error-message="Valid Zip/Postal Code Required">
</input>

And this in .js:

$('#billingPostalCode').attr('data-parsley-pattern', "^\d{5}(?:[-\s]\d{4})?$");

The attribute gets added (I can inspect the element and see it), but it doesn't validate correctly (it sees valid input as invalid). I have tried placing the JQuery code both before and after attaching parsley to the form:

[here...]
$('#paymentInfoForm').parsley( ... );
[and here...]

I have also experimented with the regex, anchored and unanchored, simplified versions, etc. But like I said, the regex works perfectly when it's hard-coded.

Could there be some interference with JSP? Am I missing something? Thanks in advance.

Upvotes: 0

Views: 657

Answers (1)

John Nimis
John Nimis

Reputation: 606

I worked around this by using [0-9] instead of /d in my regular expression. It does seem to be a bug, though. This works as expected:

$('#billingPostalCode').attr('data-parsley-pattern', "[0-9]{5}(?:[-\s][0-9]{4})?");

but the following code not won't validate anything, and will even break hard-coded validation:

$('#billingPostalCode').attr('data-parsley-pattern', "\d{5}(?:[-\s]\d{4})?");

The problem must be specific to javascript, since it works when hard-coded into the jsp file.

Upvotes: 0

Related Questions