2013-07-03 2 views
0

거의 동일한 질문에 대한 답변이 많지만이 문제를 해결할 수 없습니다. 수천 번 본 적이 있다면 용서해주십시오.버튼을 사용하여 Ajax 양식 제출

아약스를 사용하여 제출해야하는 양식이 있습니다. 제대로 처리 할 수 ​​없습니다. 제출해야하고 새로 고치지 않아도됩니다 (예상했던대로).하지만 내가하는 일은 중요하지 않은 것 같습니다. POST를 페이지의 현재 URL에 추가하면됩니다. 나는 최소한으로 양식을 벗겨 냈고, 여전히이 결과를 얻고 있습니다. 그래서 나는 정말로 잘못된 것을해야 할 것입니다. 어떤 도움을 주셔서 감사합니다, 감사합니다!

<html> 
    <body> 
     <form class="form horizontal" id="logForm"> 
      <fieldset> 
       <div class="control-group"> 
        <div style="float: left"> 
         <label for="from">Start Date: </label> 
         <div class="controls"> 
          <input type="text" id="from" name="from" /> 
         </div> 
         <label for="to">End Date:</label> 
         <div class="controls"> 
          <input type="text" id="to" name="to" /> 
         </div> 
        </div> 
       </div> 
      </fieldset> 

      <div class="form-actions"> 
       <button type="submit" class="btn btn-primary" id="subButton" style="float: left">Search!</button> 
      </div> 
     </form> 
     <script> 
      $("#logForm").submit(function() { 
       $.ajax({ 
        url: 'logQuery.php', 
        type: 'get', 
        dataType: 'json', 
        data: $('form#logForm').serialize(), 
        success: function(html) { 
        alert('worked good'); 
        return false; 
        } 
       }); 
      }); 
     </script> 
    </body> 
</html> 

답변

0

스크립트 추가 준비를 변경하고 적절한 행에서 false를 반환합니다. return false 비동기 조작이 완료되면 함수가 리턴 된 후 일 수 있습니다. 그래서 제출 이벤트의 표준 동작을 방지하지 않습니다.

돌아 가기 submit() 함수 안에 있어야합니다.

힌트 : ID = 개의 로그 만 하나의 요소가 있기 때문에 #logForm이 충분하다 (그 이상이어야 함) form#logForm를 사용할 필요가 없습니다

.

또한 이벤트를 요소에 바인딩 할 때 항상 document.ready를 사용하십시오. 이렇게하면 사이트의 모든 요소가로드되어 이벤트를 바인딩 할 수 있습니다.

preventDefault()도 사용할 수 있지만 return false도 좋습니다.

$(function(){ 
     $("#logForm").submit(function() { 
      $.ajax({ 
       url: 'logQuery.php', 
       type: 'get', 
       dataType: 'json', 
       data: $('form#logForm').serialize(), 
       success: function(html) { 
       alert('worked good'); 
       } 
      }); 
      return false; 
     }); 

}); 
+0

감사합니다. 그것은 모든 종류의 감각을 만듭니다. 정말 감사합니다. – lorsungcu

+0

당신은 환영합니다 :) – Robert