2012-01-11 2 views
2

jQuery와 POST를 사용하여이 양식을 제출하는 링크와 작은 양식이 있습니다. 프로세스 페이지의 HTML 출력을 AJAX를 사용하여 새로 고치지 않고 양식 페이지에 표시하고자합니다. 그러나 제출 링크를 클릭하면 내 코드가 작동하지 않는 것 같습니다. 누군가 내가 여기서 잘못하고있는 것을 지적 할 수 있습니까? 많은 감사합니다.jQuery에서 양식을 제출하는 링크를 사용하면 작동하지 않습니다.

감사

<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"> 

</script> 
    <script type="text/javascript"> 
     $(document).ready(function(){ 
      $('#myform').submit(function() { 
       $.post('demoprocess.php', $("#myform").serialize(), function(data) { 
        $('#results').html(data); 
       }); 
      }); 
}); 
    </script> 

<form name="myform" id="myform" action="" method="POST"> 
    <label for="name" id="name_label">Name</label> 
    <input type="text" name="name" id="name" size="30" value=""/><br>> 

    <label for="email" id="email_label">Email</label> 
    <input type="text" name="email" id="email" size="30" value=""/><br> 

    <a href="#" title="" class="pay-button" style="margin-top:5px;" onclick="document.myform.submit()">SUBMIT</a> 
</form> 

<!-- We will output the results from demoprocess.php here --> 
<div id="results"><div> 
+0

시도'SUBMIT' –

+0

귀하의 코드는'})없는,'닫습니다'document.ready' 핸들러를 . 이것은 오타입니까? 그렇지 않으면 문제가 발생할 수 있습니다. –

+0

감사합니다. Rory, 오타가 있었지만 작동하지 않습니다. – user1038814

답변

0

당신은 할 수 있습니다 :

document.forms[0].submit() 

또는

$('#myform').submit(); 
5

문제는 당신이 jQuery를submit 처리기를 바인딩하지만 기본 DOM을 발사한다는 것이다submit 방법. 이 경우 submit 이벤트가 발생하지 않으므로 jQuery 핸들러에 통지되지 않습니다.

대신 jQuery를 사용하여 이벤트를 트리거해야합니다. 그것은 오히려 onclick 속성을 사용하는 것보다, jQuery를이 작업을 수행 할 아마도 가장 쉬운 방법 : 자바 스크립트없이 사용자가 양식을 제출할 수 없기 때문에이, IMO, 아주 좋은 디자인하지

$('.pay-button').click(function(e) { 
    e.preventDefault(); // prevent the link's default behaviour 
    $('#myForm').submit(); // trigget the submit handler 
}); 

하는 것으로.

0

양식 제출에 대한 기본 동작을 방지하십시오 :

$('#myform').submit(function(ev){ 
    ev.preventDefault(); 
    $.post('demoprocess.php', $("#myform").serialize(), function(data) { 
     $('#results').html(data); 
    }); 
}); 
1

문제는 양식이 JQuery와 문서 .submit()에서 자바 스크립트 submit 이벤트

를 발생 모든 요소가 포함되지 않는다는 것입니다 :

제출 이벤트는 사용자가 양식을 제출하려고 할 때 요소로 전송됩니다. 요소에만 연결할 수 있습니다. 양식은 명시적인 <input type="submit">, <input type="image"> 또는 <button type="submit">을 클릭하거나 특정 양식 요소에 포커스가있을 때 Enter 키를 눌러 제출할 수 있습니다.

그래서, .submit() 작품을 만들기 위해 당신이 중 하나를 추가해야합니다

  • <input type="submit">,
  • <input type="image">
  • ,
  • 또는 <button type="submit">. 양식에

    , 당신은 같은 것을 추가해야합니다 있도록 :

    <input type="submit" /> 
    
관련 문제