2017-09-27 6 views
0

모달에 양식이 있습니다. 파슬리에 의해 유효성 검사가 성공적으로 이루어진 후에 ajax를 사용하여 수동으로 POST를 시도하고 있습니다. 모달이 열릴 때, 나는 처음으로 양식에 파슬리를 초기화 :파슬리 유효성 검사 던짐 : 유효성 검사기`undefined`가 다중 값을 처리하지 않습니다

modalLaunchers.createTaskFormValidation = $(document.getElementById('create-task-form')).parsley(parsleyOptions); 

양식이 다음 제출되면, 나는 다음과 같은 코드를 가지고 : 잘못된 필드가있는 경우

modalLaunchers.createTaskFormValidation.validate(); 
    if (modalLaunchers.createTaskFormValidation.isValid()) { 
     // do ajax POST 
    } 

는이이를 정확하게 강조 표시됩니다. 해당 필드는 다음 수정 및 양식을 다시 제출하는 경우, 나는 다음과 같은 오류가 발생합니다 :

Uncaught Validator `undefined` does not handle multiple values 

모두의 validate()와 isValid()이 오류가 발생합니다.

분명히 제출을 다시 누르면 양식의 유효성을 다시 확인하고 유효하면 POST를 계속하십시오. 그러나 오류가 발생하기 때문에 더 이상 진행하지 않습니다. 내 자세한 옵션은 다음과 같습니다.

const parsleyOptions = { 
    // errorsWrapper: '', 
    errorTemplate: '<span class="error-msg"></span>', 
    // successClass: 'has-success', 
    errorClass: 'has-error', 
    classHandler: (el) => { 
     console.log(el.$element.closest('div.form-group')); 
     return el.$element.closest('div.form-group'); 
    }, 
    excluded: 'input.select2-search__field', 
}; 

의견이 있으십니까? 고마워요.

+0

'parsleyOptions'의 내용이없고'addValidator'를 호출하면 말할 수 없습니다. * Pro tip * : 항상 라이브 예제를 게시합니다. –

+0

지금 옵션을 포함하도록 업데이트했습니다. addValidator에 대한 호출은 없으며 모든 것은 데이터 속성을 통해 수행됩니다. 감사. – Jingo

+0

선택 상자와 같은 다중 값 입력에 대한 유효성 검사가 잘못되었을 수 있습니까? –

답변

0

나는이 코드를 작동시킬 수 있었지만, 유효성 검사를 둘러싼 try catch 블록을 사용했다. validate 함수가 초기 유효성 검사 후에 다시 사용될 때 validate 함수가 오류를 던지면 파슬리 객체가 fields.field.validationResult 속성을 통해 개별 필드가 실패했는지 여부로 업데이트되고 UI가 업데이트되므로 매우 이상합니다 실패한 필드와 따라서 아래의 코드는 매우 엉망입니다.

이것이 버그인지 잘못 구현 된 것인지 확실하지 않습니다.