수정하기 화면에서 '목록'을 '뒤로가기'로 수정을 하려던 중 ' button'을 함수로 걸어놨던거 때문에 onclick="back()" 가 동작이 안하는 문제가 발생했다.
<button class="btn btn-info" onclick="back()" >뒤로가기</button>
button -> 'button[type="submit"]'으로 수정했다.
이벤트는 엘리먼트랑 되도록 1:1 로 걸어야 한다. 공통으로 걸면 수정시 유지보수가 힘들다.
원인을 찾기가 힘들어질 수 있다.
modifyPost.jsp
<%@include file="../includes/header.jsp"%>
....
<sec:authentication property="principal" var="pinfo" />
<sec:authorize access="isAuthenticated()">
<c:if test="${pinfo.username eq modifyPostResult.writer}">
<button type="submit" data-oper='modify' class="btn btn-default">수정</button>
<button type="submit" data-oper='delete' class="btn btn-danger">삭제</button>
</c:if>
</sec:authorize>
<!-- <button type="submit" data-oper='list' class="btn btn-info">목록</button> -->
<!-- <button type="submit" data-oper='modify' class="btn btn-default">수정</button>
<button type="submit" data-oper='delete' class="btn btn-danger">삭제</button>
<button type="submit" data-oper='list' class="btn btn-info">목록</button> -->
</form>
<button class="btn btn-info" onclick="back()" >뒤로가기</button>
</div>
....
$(document).ready(function() {
var formObj = $("form");
$('button[type="submit"]').on("click", function(e){
e.preventDefault();
var operation = $(this).data("oper");
console.log(operation);
if(operation === 'delete'){
formObj.attr("action", "/board/deletePost");
}else if(operation === 'list'){
formObj.attr("action", "/board/getPostList").attr("method","get");
var pageNumTag = $("input[name='currentPageNum']").clone();
var amountTag = $("input[name='itemsPerPage']").clone();
var keywordTag = $("input[name='keyword']").clone();
var typeTag = $("input[name='type']").clone();
formObj.empty();
formObj.append(pageNumTag);
formObj.append(amountTag);
formObj.append(keywordTag);
formObj.append(typeTag);
}
formObj.submit();
});
});
header.jsp
/*뒤로가기*/
/* location: 현재페이지조작
history: 모든 페이지 기록조작 */
function back() {
history.back();
}