2014-08-30 2 views
0

내 코드에 어떤 문제가 있는지 잘 모르겠지만 내 AJAX가 작동하지 않습니다. jQuery 라이브러리 파일을 포함 시켰지만 AJAX를 호출 할 때 프로그램에서 PHP 파일을로드하지 않습니다. 아래에서 볼 수 있듯이 .ajax 호출에는 "mail.php"라는 URL이 있지만 제출시이 파일은 절대로드되지 않습니다. 나는 수동으로 "mail.php"폼에 대한 액션 태그의 이름을 지정할 수 있지만 그냥 AJAX의 요점을 패배 "mail.php"를로드합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?AJAX가 양식에 적용되지 않음

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 

<form method="post" name="myForm" action="tac.php"> 
    <label>Name:</label> <br /> 
    <input name="sender"> 
    <br /> <br /> 

    <label>Email address:</label><br /> 
    <input name="senderEmail"> 
    <br /> 
    <label>Message:</label> <br /> 
    <textarea rows="5" cols="20" name="message"></textarea> 
    <br /> <br /> 

    <input type="submit" name="submit"> 
</form> 
<script> 

    $(document).ready(function() { 

     $("#myForm").submit(function() { 

    var roy = new Object(); 
    roy.sender = $('#sender').val(); 
    roy.senderEmail = $('#senderEmail').val(); 
    roy.message = $('#message').val(); 

    var jo = JSON.stringify(roy); 

    $.ajax({ 

      type: "POST", 
      url: "mail.php", 
      data: {roy: jo}, 
      success: function(msg){ 
      alert(msg); 
      } 

     }); 
    return false; 
    }); 
     }); 
</script> 
+0

'행동 = "tac.php"'과'URL : "mail.php"' - 갈등? –

+0

F12 키를 사용하여 콘솔을 열고 어떤 오류가 발생했는지 확인하십시오. –

+0

@ Fred-ii- .ajax는 양식의 작업 URL을 덮어 쓰기로되어 있는데, "tac.php"를 " mail.php ", 그것은 여전히 ​​AJAX가 가정 된 것처럼 장면 뒤에서 폼을 처리하지 않습니다. –

답변

1

변경

<form method="post" name="myForm" action="tac.php"> 

<form method="post" id="myForm" action="tac.php"> 

이 코드에

$("#myForm") 
는 ID = "myForm을"인 요소를 찾고 = "myForm을"

이름을하지

건배

0

존재하지 않는 ID 이벤트를 트리거하려고하기 때문에 작동하지 않습니다.

$("#myForm").submit(function() { 아이디 "myForms는"그것은 < 형태> 태그 < 형태 = "myForm을"

풋 ID에 존재하지 않는>과 그것을 잘 작동합니다.

이 같이

: <form method="post" id="myForm" action="tac.php">하고 양식 태그에 아무 소용이 없기 때문에 또한 이름 = "myForm을"를 제거 ...