javascript
  • jquery
  • jsp
  • parsley.js
  • 2016-07-15 20 views 0 likes 
    0

    我正在使用歐芹,它很棒!我想以編程方式添加不同的驗證器,具體取決於語言環境,使用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

    應該工作。發佈一個工作示例... –

    +0

    我嘗試在我的jQuery代碼中使用不同的正則表達式(特別是我試過。{5}和\ d {5})。第一個工作,第二個不工作,所以它看起來像是導致問題的「\ d」。 –

    回答

    0

    我在我的正則表達式中使用[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文件中。

    相關問題