반응형
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하면 위의 문제를 해결할 수 있다.
반응형
최근댓글