jsp에 form 태그에 action에 URL을 주고 javascript에서 submit() 처리를 하는데, 화면이 이동하지 않아서 이유를 찾는다고 시간을 보냈다.

게시판의 제목을 클릭하면 a태그를 이용하여 화면을 이동하는 것이었는데, onclick에 함수를 실행시킨 것이 잘못이었다.


기존에 사용하고 있던 a태그의 형태는 아래와 같았다.

<a href="?" onclick="fn_action()">글 제목이 들어갈 부분</a>

위의 형태는 js의 함수에 들어가는 것은 확인이 되었지만 frm.submit()이 실행되지 않고, 현재 페이지를 계속 새로고침 하는 형태로 보여줬다.


그래서 아래와 같이 수정을 하자 원하는 대로 submit() 동작이 되었다.

<a href="javascript:fn_action()">글 제목이 들어갈 부분</a>




javascript에서 URL 파라미터를 가져올 일이 있어서 찾게 되었다.

내가 받은 URL의 형식은

http://highello.tistory.com?param=hi

의 형태로 하나의 값만 가져오면 되는 형태였다.


var param = $(location).attr('search').slice($(location).attr('search').indexOf('=') + 1);


결과값 : hi


위와같이 사용하였다.


물론 많은 값을 가져오는 다양한 방법이 있지만 결과 값으로 'hi'라는 값만 가져오면 되는 경우였기에 위와같이 사용하였다.

더 많은 parameter를 가져오기 위해서는 위의 방법을 사용하는 것이 적절하지 않다.

물론 위의 내용을 조금 수정하여 Parameter로 들어온 값만 가져와서 변경하여 사용하는 것은 가능하다.


javascript를 사용하다보면 alert나 log를 이용하여 변수의 값을 확인하고 싶어도 확인하지 못하는 경우가 종종 생긴다.

특히, [Object object]로 보여지는 경우를 자주 만나게된다.

자바의 경우 obj.toString() 이나 obj.toJSON()로 처리할 수 있지만 javascript에서 저렇게 간단하게 보여지지 않는다.


아래는 JSON을 만들어 값을 넘기면서 값이 제대로 들어갔는지 확인하기 위해 사용한 방법이다.


for (var key in obj) {

console.log("Attributes : " + key + ", value : " + obj[key]);

}


*) key의 경우 for문 안에서만 사용하는 변수이므로 어떤 변수명을 사용하더라도 무관하다.

obj의 경우 값을 알고자하는 object의 변수명을 적으면 된다.


위의 내용을 입력하고 실행시키면 콘솔창에 object 변수 내에 있는 변수명과 값들을 확인할 수 있다.

object내의 변수가 많을 경우 alert로 확인하는 것 보다 console.log로 확인하는 것이 한눈에 파악이 쉽다.

단, 확인이 끝날 경우 꼭 주석처리를 하거나 지우는 것을 잊지 말자!


+ Recent posts