오모씨
462
2021-09-15 18:13:54
0
57

JQuery를 사용하여 여러개의 submit 중 특정 버튼의 value 값을 변경하려 합니다.


안녕하세요. 

JSP에 반복문을 사용하여 for문으로 hidden 값과 submit 버튼을 다음과 같이 만들었습니다.


<% for(int i = 0; i < 3; i++) {%>
  <input type="hidden" id="rid<%=i%>" value="전송<%=i%>" />
  <input type="submit" name="req_Submit<%=i %>" id="req_Submit<%=i %>" value="전송요청" /><br/>
<%}%>

화면에는 "전송요청"이라는 글자가 찍힌 버튼이 세줄에 걸쳐 나옵니다.


이 때 특정 i 번째 버튼을 클릭하면 해당 submit과 i로 묶여있는 hidden의 값을 ajax를 사용하여 서블릿에 넘기고 DB의 값을 변경하고 완료되면 해당 submit의 value 값을 변경하고 싶습니다.


예를 들면 id 가 req_Submit0 인 "전송요청" 버튼을 클릭하면 이 id의 value인 "전송요청" 글자와 함께, id가 rid0인 hidden 요소의 value "전송0" 값을 ajax로 서블릿에 넘겨 처리하고 req_Submit0의 "전송요청" 글자(value)를 "전송완료"로 변경하고 싶습니다.


이를 위해 JQuery 코드를 다음과 같이 해보려고 했습니다.


for(var i = 0; i <3; i++) {
  $('#req_Submit' + i).click(function() {
    var rid = $('#rid' + i).val();
    var s_Val = $('#req_Submit' + i).val();
   
    $.ajax({type: 'GET', url: 'TomcatJDBC', 
              data: { g_Rid: rid, g_Val: s_Val},
	      success: function(rTxt) {
	        $('#req_Submit' + i).val("전송완료");
	      }
      });
   });
}

 

그런데 일단 문제가 req_Submit+i번째의 버튼 클릭 이벤트 함수 안에서는 먹지를 않더군요.

그래서 찾아보니 this를 써서 

var s_Val = $('#req_Submit' + i).val();

이 부분을 

var s_Val = $(this).val();

이렇게 바꾸면 된다해서 해보니 this로 할 때는 적용이 되더라구요.


그런데 문제는 저 이벤트 함수로 클릭 된 버튼과 함께 있는 rid+i번째 hidden의 value 값을 넘길 수가 없더라구요.


또하나의 문제는 

	      success: function(rTxt) {
	        $('#req_Submit' + i).val("전송완료");
	      }


이 부분에서 도 ajax로 이미 프로세스가 넘어가서 그런지 i값이 반영 안되는 것 같더라구요.


이를 처리 할 수 있는 javascript 고수님들의 조언 부탁드립니다. 


감사합니다.


0
  • 답변 0

  • 로그인을 하시면 답변을 등록할 수 있습니다.