[Javascript] jQuery를 이용해 검색 화면 및 기능 구현
들어가며
처음에 javascript, jQuery, ejs를 사용을 하다보면 각 역할을 유기적으로 연결하는게 참 어려운 문제라고 생각합니다. ejs에서 선언한 값을 어떻게 가져오는지, jQuery로 가져온뒤에 javascript에서는 어떻게 처리를 해야하는지도 감이 안올때가 있습니다. 간단한 예제중에 입력창에 입력을 받고, 입력한 데이터를 가져오는 버튼을 구현하면서 ejs와 jQuery, javascript를 전체적으로 연결하는 연습을 할 수 있습니다. 아래 예제는 입력창과 버튼을 ejs로 생성을 하고, javascript에서 jQuery를 이용해 input과 button의 reference의 값을 가져온 뒤에 이벤트를 바인딩하고 결과를 가져오는 예제입니다.
소스코드
search_view.ejs
아래 소스코드는 우리가 실제로 보는 페이지를 나타냅니다. input과 btn을 이용해 생성하고 btn에는 js에서 값을 가져올 수 있도록 뒤에 value를 선언 합니다.
<% script('/javascripts/app/partials/search.js') %>
<div class="container">
<div class="row text-center search-bar">
<div>
<input type="text" id="search_keyword" class="form-control" <%if(params.searchKeyword != undefined) {%> value="<%=params.searchKeyword%>" <%}%>>
</div>
<div>
<a href="javascript:;" id="search" class="btn btn-default btn-search">검색</a>
</div>
</div>
</div>
search.js
_initView()에서는 위에서 선언한 input과 btn을 jQuery를 이용해 주소의 값을 가져옵니다. 주소를 가져온 뒤에 _bindEvent()의 함수를 통해서 btn을 클릭했을때의 이벤트를 가져오게 됩니다. 이 예제에서는 버튼을 클릭했을때, 입력값으로 넣은 검색키워드를 가지고와서 브라우저에 출력을 합니다.
/**
* Created by banana on 8/15/16.
*/
requirejs([ "common" ], function () {
requirejs([ "loglevel" ], function (log) {
var _searchBtnRef = null;
var _searchKeywordRef = null;
var _initView = function() {
_searchKeywordRef = $("#search_keyword");
_searchBtnRef = $("#search");
_bindEvent();
}
var _bindEvent = function() {
_searchBtnRef.click(function() {
var searchKeyword = _searchKeywordRef.val();
log.info("search keyword : " + searchKeyword);
});
}
var _init = function () {
_initView();
};
_init();
});
});
'Javascript > JavaScript' 카테고리의 다른 글
[javascript] js.cookie를 이용한 오늘 하루 열지 않기 팝업 구현하기 (0) | 2021.05.02 |
---|---|
[웹프로그래밍] HTML 페이지 데이터 로딩 화면 구현하기 (0) | 2021.05.02 |
[JavaScript] 자바스크립트 Ajax 사용하는 방법 (POST/GET) (0) | 2021.04.30 |
[JavaScript] 자바스크립트 Dictionary 사용하는 방법 (0) | 2021.04.30 |
자바스크립트 함수, 이것으로 종결하자 (0) | 2021.03.29 |
자바스크립트(JavaScript) 실행 구조와 프로그램 평가, 실행과정 (0) | 2021.03.29 |
ECMAScript 6 (0) | 2021.03.23 |
V8 javascript 엔진 (Hidden Class, 인라인캐싱, 메모리구조, 호출스택, heap, GC) (0) | 2021.03.23 |