$('#foo').validate({
errorPlacement: (e, el) => {
/**
* /* Insert .error after offending <input>'s <label>.
*/
e.insertAfter(el.next('.form__label')).animate({
opacity: 1,
top: '-=10px',
}, 'fast');
},
messages: {
tc: 'Please accept our Terms & Conditions!',
},
});
$('#bar').validate({
errorPlacement: (e, el) => {
/**
* /* Insert .error after offending <input>'s <label>.
*/
e.insertAfter(el.next('.form__label')).animate({
opacity: 1,
top: '-=10px',
}, 'fast');
},
});
내 페이지에 두 개의 다른 <form>
컨테이너가있는 jqueryvalidation.org와 협력하고 있습니다. 이것은 그대로 작동하고 있지만, errorPlacement
오브젝트를 추정 할 수있는 더 좋은 방법이 있다고 확신합니다.복제를 피하기 위해 리팩토링 할 수있는 방법은 무엇입니까?
/**
* Customize placement of created error labels.
* (https://jqueryvalidation.org/validate/)
* @param {$} e created error label
* @param {$} el invalid element
*/
function ep(e, el) {
// Insert .error after offending <input>'s <label>.
e.insertAfter(el.next('.form__label')).animate({
opacity: 1,
top: '-=10px',
}, 'fast');
}
$('#foo').validate({
errorPlacement: function ep(e, el) {
// Insert .error after offending <input>'s <label>.
e.insertAfter(el.next('.form__label')).animate({
opacity: 1,
top: '-=10px',
}, 'fast');
},
messages: {
tc: 'Please accept our Terms & Conditions!',
},
});
$('#bar').validate({
errorPlacement: ep(e, el), // This throws error of 'unknown' e
});
나는 유효성 검사가 메시지와 내용과 같이 각각 다를 것이라고 상상해보십시오. 왜냐하면'$ ('# foo, #bar'). validate ({})' –
@MattFletcher가 없기 때문에,'.validate()'메소드는 절대 그렇게 작동하지 않기 때문이다. 둘 이상의'form'과 일치하는 jQuery 선택기에 연결하면 첫 번째 양식 만 사용되고 나머지는 무시됩니다. [문서를 참조하십시오] (https://jqueryvalidation.org/reference/#link-validating-multiple-forms-on-one-page). 그럼에도 불구하고, OP는 그가 처음에 언급 한대로 각 양식 내에 몇 가지 독특한 옵션이 있음을 보여줍니다. – Sparky