以编程方式添加数据欧芹模式时遇到问题
Trouble adding data-parsley-pattern programmatically
我正在使用 Parsley,它很棒!我想根据语言环境使用 javascript/JQuery 以编程方式添加不同的验证器。当我这样硬编码时:
<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>
效果很好。但是,当我尝试以编程方式添加它时,它没有。我在 .jsp 文件中有这个:
<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>
在 .js 中:
$('#billingPostalCode').attr('data-parsley-pattern', "^\d{5}(?:[-\s]\d{4})?$");
添加了属性(我可以检查元素并看到它),但它没有正确验证(它将有效输入视为无效)。我尝试在将欧芹附加到表单之前和之后放置 JQuery 代码:
[here...]
$('#paymentInfoForm').parsley( ... );
[and here...]
我也尝试过正则表达式、锚定和非锚定、简化版本等。但就像我说的,正则表达式在硬编码时工作得很好。
JSP会不会有一些干扰?我错过了什么吗?提前致谢。
我通过在正则表达式中使用 [0-9] 而不是 /d 来解决这个问题。不过,这似乎确实是一个错误。这按预期工作:
$('#billingPostalCode').attr('data-parsley-pattern', "[0-9]{5}(?:[-\s][0-9]{4})?");
但以下代码不会验证任何内容,甚至会破坏硬编码验证:
$('#billingPostalCode').attr('data-parsley-pattern', "\d{5}(?:[-\s]\d{4})?");
这个问题一定是 javascript 特有的,因为它在硬编码到 jsp 文件中时有效。
我正在使用 Parsley,它很棒!我想根据语言环境使用 javascript/JQuery 以编程方式添加不同的验证器。当我这样硬编码时:
<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>
效果很好。但是,当我尝试以编程方式添加它时,它没有。我在 .jsp 文件中有这个:
<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>
在 .js 中:
$('#billingPostalCode').attr('data-parsley-pattern', "^\d{5}(?:[-\s]\d{4})?$");
添加了属性(我可以检查元素并看到它),但它没有正确验证(它将有效输入视为无效)。我尝试在将欧芹附加到表单之前和之后放置 JQuery 代码:
[here...]
$('#paymentInfoForm').parsley( ... );
[and here...]
我也尝试过正则表达式、锚定和非锚定、简化版本等。但就像我说的,正则表达式在硬编码时工作得很好。
JSP会不会有一些干扰?我错过了什么吗?提前致谢。
我通过在正则表达式中使用 [0-9] 而不是 /d 来解决这个问题。不过,这似乎确实是一个错误。这按预期工作:
$('#billingPostalCode').attr('data-parsley-pattern', "[0-9]{5}(?:[-\s][0-9]{4})?");
但以下代码不会验证任何内容,甚至会破坏硬编码验证:
$('#billingPostalCode').attr('data-parsley-pattern', "\d{5}(?:[-\s]\d{4})?");
这个问题一定是 javascript 特有的,因为它在硬编码到 jsp 文件中时有效。