반응형

jsp에서 다른 jsp로 post 방식으로 데이터를 보내려고 form 태그를 사용하는데, Uncaught TypeError: Cannot set properties of null (setting 'action') 이 에러가 발생했다. 이 에러는 form 태그가 만들어 지기도 전에 스크립트가 실행이 되어 값을 찾지 못해 발생하는 경우다.

 

이 경우에는 결국엔 스크립트 function에 동적으로 form 태그를 만들면 된다.

동적 form 태그를 만드는 방법은 아래와 같이 하면 된다.

 

function test() {
	var form = document.createElement("form");
	form.setAttribute("id", "test");
	form.setAttribute("name", "test");
	form.setAttribute("method", "POST");
	form.setAttribute("action", url);
	form.setAttribute("target", index);
			
	var input1 = document.createElement("input");
	input1.setAttribute("name", "session_ID");
	input1.setAttribute("value", Session_ID);
	form.appendChild(input1);
			
	var input2 = document.createElement("input");
	input2.setAttribute("name", "ID");
	input2.setAttribute("value", ID);
	form.appendChild(input2);
			
	var input3 = document.createElement("input");
	input3.setAttribute("name", "lang");
	input3.setAttribute("value", lang);
	form.appendChild(input3);
			
	document.body.appendChild(form);
	form.submit();
}

 

위와 같이, form 태그를 동적으로 만들어 놓고, input 태그도 동적으로 만들어 form 태그 밑으로 appendChild를 하고, form 태그를 body 밑으로 appendChild하면 위의 문제를 해결할 수 있다.

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기