요런식으로 input text에 값 넣고 검색하는 화면을 만들었다.
'검색' 버튼에 onclick 이벤트를 주고
onclick이 되면 파라미터들을 좀 더 채워넣어서 submit을 스크립트 함수에서 시키도록 했다.
function search() {
$('#search_form').append('<input type="hidden" id="search_type" name="search_type"
value="'+ searchType + '" />').submit();
}
뭐 이런식으로?
마우스로 검색 버튼을 클릭했을 땐 잘 동작했다.
그런데 text에 값을 넣고 엔터를 치면 search() 함수에 들어오지 않고 바로 서브밋이 돼서 서버로 가는 것이었다.
검색 결과 아래 블로그에 잘 나와있었다.
https://blog.outsider.ne.kr/292
input type text가 1개만 존재하면 바로 서브밋이 된다는 내용이다.
(이유는 모름.. 브라우저들이 그렇게 처리한다고 함)
나는 엔터로도 검색이 먹혀야 하기 때문에 이렇게 해결했다.
$('#search_form').submit(function (e) {
$('#search_form').append('<input type="hidden" id="search_type" name="search_type" value="'+ searchType + '" />');
// submit() 호출하지 않아도 함수가 끝나면 수행 완료됨
});
* 참고로 검색 버튼은 type="submit" 으로 설정한다.
만약 submit을 아예 동작시키고 싶지 않으면
submit 함수 내에서 return false; 또는
e.preventDefault(); 를 수행한다.
e.preventDefault();는 이벤트의 동작을 멈추게 하는 함수이다.
'개발 > Javascript' 카테고리의 다른 글
모바일 웹 브라우저에서 앱 설치여부에 따라 앱 또는 마켓으로 이동시키기 (6) | 2015.01.09 |
---|---|
[jquery] Ajax로 배열 파라미터 넘길 때 인코딩 깨지는 현상 (1) | 2014.06.18 |
[jQuery] Ajax의 흐름과 예제 (10) | 2013.06.14 |
Flash 위에 게시판 올리는 법 (0) | 2013.04.30 |
jqGrid] 동적으로 그리드 나타내기 (6) | 2013.04.30 |