사용자 정의 클라이언트 측 유효성 검사를 Spree의 checkout/address
페이지의 입력 필드에 추가하려고합니다. JQuery와이 방법의 유효성을 검사 추가, 내 vendor/assets/javascripts/spree/frontend/checkout/address.js.coffee
내부사용자 정의 클라이언트 측 폼 유효성 검사를 Spree 프론트 엔드에 추가
= form.input :vat_number, label: Spree.t(:vat_number)
을 :
이 (여기 HAML & SimpleForm 사용) 폼에 입력을 추가 그래서, 여기에 내가 지금까지 한 일이다
($).validator.addMethod "vatNumber", (value, element) -> return false , "Something wrong!" Spree.onAddress =() -> if ($ '#checkout_form_address').is('*') ($ '#checkout_form_address').validate({ rules: { order_bill_address_attributes_vat_number: { vatNumber: true } } }) # ... rest of the file ...
validate()
호출에 규칙을 삽입나머지 폼 유효성 검사가 작동하더라도 유효성 검사기가 vat_number
필드에서 작동하지 않는 것 같습니다. javascript
디버그 콘솔에서 $.validator.methods
을 입력하면 새로운 vatNumber
메서드가 추가 된 것을 볼 수 있습니다. 따라서 validate()
이라고하는 방식으로 문제가 발생하거나 SimpleForm
이라는 사실과 관련이 있습니다.
나는이에 validate()
호출 주위에 코드를 변경 :
($ '#order_bill_address_attributes_vat_number').rules("add", {vatNumber: true})
($ '#checkout_form_address').validate()
그리고 나는 javascript
콘솔 창에 다음과 같은 오류 있어요 :
TypeError: undefined is not an object (evaluating '$.data(element.form,"validator").settings')
사람이 작업을 수행하기 위해 노력하고 있습니까?