programing

jQuery의 .on() 메서드가 송신 이벤트와 조합

padding 2023. 3. 19. 19:53
반응형

jQuery의 .on() 메서드가 송신 이벤트와 조합

에 문제가 있다..on(). 여러 개의 폼 엘리먼트가 있습니다(폼은class="remember"), 다른 것도 추가합니다.form.rememberAJAX를 사용합니다.그래서 다음과 같은 이벤트 제출을 하고 싶습니다.

$('form.remember').on('submit',function(){...}) 

AJAX에 추가된 폼은 동작하지 않습니다.

어디가 문제입니까?벌레인가요?

문서 레벨에 이벤트를 위임해야 합니다.

$(document).on('submit','form.remember',function(){
   // code
});

$('form.remember').on('submit'와 같은 일을 하다$('form.remember').submit(하지만 사용할 때는$(document).on('submit','form.remember'나중에 추가된 DOM에도 사용할 수 있습니다.

나는 같은 증상에 문제가 있었다.제 경우, 제출 기능에 "반환" 명세서가 누락되어 있었습니다.

예를 들어 다음과 같습니다.

 $("#id_form").on("submit", function(){
   //Code: Action (like ajax...)
   return false;
 })

여기서의 문제는 "on"이 AT THE TIME에 존재하는 모든 요소에 적용된다는 것입니다. 요소를 동적으로 작성할 경우 를 다시 실행해야 합니다.

$('form').on('submit',doFormStuff);

createNewForm();

// re-attach to all forms
$('form').off('submit').on('submit',doFormStuff);

양식에는 일반적으로 이름 또는 ID가 있으므로, 새 양식에도 첨부할 수 있습니다.다이나믹한 것을 많이 만들고 있는 경우는, 셋업 또는 바인드 기능을 포함합니다.

function bindItems(){
    $('form').off('submit').on('submit',doFormStuff); 
    $('button').off('click').on('click',doButtonStuff);
}   

따라서 사용자가 무언가를 만들 때마다(보통 내 경우 버튼) bindItems를 호출하여 페이지의 모든 내용을 업데이트합니다.

createNewButton();
bindItems();

탭이나 모달에서는 주위를 맴돌며 예상치 못한 일을 하는 경향이 있기 때문에 본문이나 문서 요소를 사용하는 것을 좋아하지 않습니다.간단한 1페이지 프로젝트가 아니면 항상 가능한 한 구체화하려고 노력합니다.

언급URL : https://stackoverflow.com/questions/18545941/jquerys-on-method-combined-with-the-submit-event

반응형