제목 | jquery 의 ajax 를 사용하여 동적으로 form 객체 생성시 DOM 컨트롤 관련 질문. | ||
---|---|---|---|
글쓴이 | 내안의다른삶 | 작성시각 | 2014/11/12 12:45:18 |
|
|||
안녕하세요. codeigniter 를 사용해서 여러 페이지를 만들어보고 있습니다. ajax를 이용해서 form 객체를 동적으로 페이지에 추가하는 기능을 만들어 보고 있는데요. form 의 기본형식이 만들어져 있는 view 를 만들어두고 페이지에서 버튼 클릭시 ajax를 통해서 controller의 함수로 넘어가서 form 의 기본 정보인 value 값이나 input type 등등을 설정해서 view 의 form 에 입력하여 그 결과 값(html 소스)을 다시 ajax에서 맨처음의 페이지에 $("#center").html(msg); 이런식으로 받아서 넣는 방식으로 만들었습니다. 그랬더니 해당폼의 input 객체의 값이 submit 시 넘어가질 않네요. ;; id 값으로 직접 해당 객체로의 접근은 되지만 jquery submit 함수나 일반 submit 방식으로도 해보았지만 되질 않습니다. 새로 생성한 form 에서 클릭 이벤트로 form 의 input 객체를 var frm = document.forms[formname]; alert(frm.length); 위 방법으로 체크해봤더니 0 이 나오네요. 찾아보다보니 jquery 의 appendChild 함수를 찾았는데 사용하려고보니 createElement 로 javascript 에서 객체 생성시 각각 사용하는 방식인 것 같아 애매하네요. 혹시 위와 같은 상황에 대한 조언 부탁드려도 될까요. 긴글 읽어주셔서 감사합니다. 좋은 하루되세요 ^^ ------------------------------------------------------------ 시작 페이지 소스
ajax 자바스크립트 소스 function insert_input(menu) { var obj = $(menu); var data = menu.id; $.ajax( { type: "POST", url: "inputform_make", data: {data:data}, success: function(msg){ $("#center").html(msg); } }); } 컨트롤러 소스 public function inputform_make() { $id = $this->input->post('data'); $this->load->view('input_form_v',$id); } 뷰 소스 submit 자바스크립트 소스 function submit(menu) { var formid = $(menu).closest('div').find('form').attr('id'); var frm = document.forms[formname]; var form_input = document.getElementById('formid'); var nodeList = document.getElementsByTagName("input"); var nodeArray = []; for (var i = 0; i < nodeList.length; ++i) { form_input.appendChild(nodeList[i]); } frm.submit(); } |
|||
다음글 | 크롬 개발자도구 한글화로 변경은 못하나요~? | ||
이전글 | CSS 문법에 대해 질문 드립니다. (3) | ||
한대승(불의회상)
/
2014/11/13 06:59:52 /
추천
0
|
내안의다른삶
/
2014/11/13 11:41:28 /
추천
0
추가된 소스의 submit 의 노랑배경의 소스를 추가하여
원하던 목적을 이루었습니다. 위 소스에서 기존에 ajax로 새로 추가된 form의 input 의 값이 submit 시 넘어가지 않는 문제가 있어서 문의한 글이었습니다. 글솜씨가 그닥 좋지 않아 소스로 올리는게 보기 편할까 싶어 대략적인 소스를 적어보았습니다. 제가 해결한 방법이 올바른 방법인지는 모르겠지만 ajax로 form 생성시 appendchild 로 객체를 기존 문서에 추가를 알려주려고 하니 여러가지 소스가 바뀌어야 하는 부분이 많아서 submit 에서 처리하니 특별한 변경 없이 잘 동작하네요. 혹시 위의 방법말고 다른 좋은 방법이 있다면 알려주시면 감사하겠습니다. 해결은 했지만 뭔가 더 좋은 방법이 있을것 같은 느낌입니다. ㅎㅎ 읽어주신 한대승님 감사합니다. ^^ |
도움을 주고 싶지만 위 내용을 보면 어떻게 도움을 줘야 할 지 모르겠네요.
아무래도 질문 방법에 문제가 있나 봅니다.