2013-02-21 6 views
0

나는 그것에 대해 이상한 생각을 해왔다. 내 양식을 제출하고 마지막 경고 부분에 주석을 추가 할 때마다 아약스는 실행되지 않지만 내가 다시 주석을 달면 진행됩니다. 왜 그런가요?아약스 요청이 완료되지 않은 이유는 무엇입니까?

$(document).ready(function() { 
    $('.finalize').live('click', function() { 
     $('#prodTbl tbody tr').each(function() { 
      var epx = $(this).attr('id'); 
      var qty = $(this).find('.qty').val(); 
      arr.push({ 
       'idprod': epx, 
       'qty': qty 
      }); 
     }); 

     $.each(arr, function (index, value) { 
      newArr.push([value.idprod, value.qty]); 
     }); 

     var c = JSON.stringify(newArr); 
     var dataString = 'arr=' + c; 

     $.ajax({ 
      type: "POST", 
      url: "/recordTrans", 
      data: dataString, 
      cache: false, 
      success: function (data) { 
       alert(data); 
      } 
     }); 

     alert("1"); 
    }); 

}); 

이 부분이 주석 처리되면 절대로 ajax가 실행되지 않습니다. 정말 이상한가, 아니면 덫 치지 않은 오류 때문인가?

답변

2

.finalize이 제출 단추라고 가정하면 클릭 이벤트 처리기에서 false를 반환하여 전송을 중지하지 않기 때문에 페이지를 클릭 할 때마다 페이지가 제출됩니다. 이로 인해 ajax 호출이 요청을 완료하기 전에 중단됩니다.

경고가 발생하면 브라우저에 충분한 시간을 보내고 Ajax 요청을하고 완료하십시오.

시도해보십시오.

$('.finalize').live('click', function() { 

    //Your code without alert 

    return false; 
}); 
+0

Gaahhh. 정말 고맙습니다. 그것은 오히려 수정입니다 .... : DDDD –

관련 문제