jQuery의 .on() 메서드가 송신 이벤트와 조합
에 문제가 있다..on()
. 여러 개의 폼 엘리먼트가 있습니다(폼은class="remember"
), 다른 것도 추가합니다.form.remember
AJAX를 사용합니다.그래서 다음과 같은 이벤트 제출을 하고 싶습니다.
$('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
'programing' 카테고리의 다른 글
각도:약속, 지도, 세트 및 반복자를 찾을 수 없습니다. (0) | 2023.03.19 |
---|---|
Android - JSON Array 및 JSON 객체 생성 (0) | 2023.03.19 |
두 개의 MySQL 데이터베이스를 동기화하려면 어떻게 해야 합니까? (0) | 2023.03.19 |
angularjs를 사용하여 xls로 내보내기 (0) | 2023.03.19 |
json과 xml의 차이점은 무엇입니까? (0) | 2023.03.19 |