2011-12-06 4 views
0

나는 PHP 함수를 통해 양식을 표시하고있어 제출하는 것을 허용하지 않습니다, 다음 오류를 표시하는 양식을 업데이트, jQuery를 함께 양식을 제출 값을 처리하기 위해 jQuery를 통해 게시물. 프로세서가 오류를 발견하면 오류 배열을 매개 변수로 사용하여 getLoginForm 함수를 호출합니다. 이렇게하면 양식이 다시 표시 될 때 오류가 필드 아래에 표시됩니다.형태로 다시

문제는 프로세서 파일이 전체 양식을 반환하고 이전 양식으로 바뀌어 문제가된다고 생각합니다. 양식을 다시 제출하려고 시도하면 jQuery가 새로 작성된 양식에 대해 알지 못하기 때문에 양식을 다시 작성하지 않습니다.

이 문제를 해결할 수있는 방법은 무엇입니까?

감사합니다, 라이언

UPDATE

jQuery를 제출 처리기 :

$('form').submit(function(e){ 
     var formElement = $(this); 
     var data = formElement.serialize(); 
     var page = 'process.php?p=' + formElement.attr('name'); 
     formElement.find('button[name=commit]').attr('disabled', 'disabled').addClass('disabled'); 
     formElement.find('.message').html('<div class="pending">Sending your request... please wait...</div>'); 
     $.post(page, data, function(response) { 
      formElement.html(response); 
     }); 
     e.preventDefault(); 
    }); 
+2

jQuery 양식 제출 처리기를 공유하거나 처리기를 클릭하십시오. – VNO

+0

원래 양식을 보여주기 위해 –

답변

0

"라이브()"동적으로 생성 된 객체에 대한 이벤트에 바인딩 사용해보십시오. JQuery와 선택 일치하는 현재와 미래의 모든 요소에 바인딩 이벤트에 바인딩 "라이브"를 사용

$('form').live('submit', function() { ... 

:이 작업을 수행하려면

, 당신은 당신의 코드를 변경합니다. 양식을 덮어 쓰는 중이므로 이것은 새로운 요소이므로 현재 코드는 결과로 제출 이벤트에 바인딩되지 않습니다.

+1

'live()'가 더 이상 사용되지 않습니다.'delegate()'를 사용하는 것이 더 좋습니다. 또는 jQuery 1.7+'on()을 사용하는 경우 –

+0

작동하지 않았습니다. 양식은 오류가있는 새 양식으로 바뀌고 그 양식은 바운드되지 않습니다. 추측해야한다면 $ ('form'). submit() 함수 안에 뭔가가 필요하여 새로운 양식을 가져온 후에 바인드합니다. – NightHawk

+0

로리 - 좋은 팁. 감사! – BradBrening