jQuery UI Dialog 컨트롤 의 폼 을 정상적으로 제출 할 수 없 는 해결 방법

최근 jQuery UI 의 Dialog 컨트롤 을 사용 할 때 이 컨트롤 에 폼 을 설치 하면 모든 폼 을 정상적으로 제출 할 수 없 음 을 발 견 했 습 니 다.구체 적 으로 는 1.제출 버튼 이 효력 을 잃 고 클릭 하면 아무런 반응 이 없습니다.2.다른 수단 으로 페이지 를 제출 하 더 라 도 서버 에서 Dialog 의 폼 데 이 터 를 찾 을 수 없습니다.페이지 원본 코드 를 연구 한 결과 jQuery UI Dialog 컨트롤 이 초기 화 될 때 동적 으로 생 성 된 HTML 요 소 는 페이지 의 끝,form 요소 뒤에 추가 되 었 고,원본 Dialog 템 플 릿 부분(폼 요소 포함)도 동적 으로 생 성 된 HTML 요소 로 이동 한 것 으로 나 타 났 다.즉,form 에 있 던 폼 이 Dialog 초기 화 후 form 밖으로 옮 겨 져 Dialog 템 플 릿 내 폼 이 모두 효력 을 잃 었 다 는 것 이다.jQuery UI 의 Dialog 디자인 이 기능 인지 bug 인지 모 르 겠 습 니 다.Dialog 에서 정상 적 인 페이지 제출 을 실현 하기 위해 상기 분석 에 따 르 면 저 는 간단 한 해결 방법 을 찾 았 습 니 다.jQuery UI 컨트롤 의'open'이벤트 처리 프로그램 에서 Dialog 컨트롤 이 동적 으로 생 성 된 HTML 요 소 를 form 요소 로 옮 겼 습 니 다.코드 는 다음 과 같 습 니 다
 
$("#dlg").dialog({
open: function () {
$("body > div[role=dialog]").appendTo("form#aspnetForm");
}
});
코드 중의'aspnetForm'은 ASP.NET 응용 프로그램 이 자동 으로 생 성 하 는 현재 페이지 form 요소 ID 입 니 다.사용 시 자신의 페이지 의 form ID 로 바 꿀 수 있 습 니 다.

좋은 웹페이지 즐겨찾기