2013-05-18 2 views
0

문서 준비시 아약스 코드로 양식을 자체 제출하는 데 문제가 있습니다. 나는 사용자가 submit을 클릭 할 때 index.php에 남아 있기를 원하지만, 코드는 살아있는 것처럼 보이지 않고 즉시 new_work.php로 이동한다. 내가 읽은 바로는 preventDefault와 stopPropagation을 ajaxForm과 함께 사용할 필요가 없다.아약스로 양식을 보내는 데 문제가 있습니다.

var initAjaxForm = function() { 
    ('#ajax_form').ajaxForm({ 
     success: function(data) { 
      $('body').html(data); 
     } 
     }); 
    } 

$(document).ready(function() { 
    $('body').load("new_work.php", function() { 
     initAjaxForm(); 
    }); 
}); 

HTML 마크 업에는 아무 것도 중요하지 않습니다. 형태

<form action="new_work.php" method="post" id="ajax_form">

그게 내가 아약스를 통해 파일을 보낼 알고있는 유일한 방법이기 때문에이 ajaxform 플러그인을 사용하고 그냥 빈 골격. 더 나은 해결책이 있다면 알려주십시오! 고맙습니다.

편집 : 내가 오류는 다음과 같습니다

catch되지 않은 형식 오류 : 개체 #ajax_form에는 방법이 없습니다 'ajaxForm'

답변

0

당신이 jQuery Form Plugin로드 적이 있습니까? ajaxForm은 표준 jQuery에 내장되어 있지 않습니다.

ajax_form은 HTML 양식의 ID입니까?

+0

모두에 예 OP에 양식 헤더를 게시했습니다. –

+0

그 양식 헤더는'index.php' 또는'new_work.php'입니까? 이전 버전에서는 'load'에 의해 덮어 쓰여지고 ajaxForm이 호출 될 때까지 사라집니다. –

+0

new_work.php에 있습니다 ...로드가 호출 된 후 작동하게하려면 어떻게해야합니까? –

0

달러 기호를 추가해보십시오.

$('#ajax_form').ajaxForm({ 
+0

D' oh. 그것은 오류를 제거합니다. 하지만 코드는 여전히 new_work.php로 이동합니다. –

+0

본문에있는 PHP 파일이로드되는 이유는 무엇입니까? 함수 호출 만 해보십시오. –

+0

나는 그럴 필요가 없다고 생각하지만, 내 페이지를 더 잘 구성하는 데 도움을주기 위해 거기에 넣었다. 그것은 아약스 호출을 먼저 사용하여 데이터를 얻지 못하면 그냥 함수 호출로 작동합니다. 그러나 나는 심지어 그 이유를 풀어서 처음부터 그 형태를 가지지 않고 이런 식으로 일하기를 원한다고 가설 적으로 생각한다. –

관련 문제