2012-10-29 3 views
0

거대한 webapplication에서 양식 제출을위한 해결 방법이 필요합니다.자바 스크립트 표준 함수를 제출 덮어 쓰기

내장 된 javscript 메소드를 재정의하기 위해 this example을 시도했지만 경고 팝업도 표시되지 않습니다.

function submit(event) { 
     var target = event ? event.target : this; 
     $.ajax({ 
      url: target.action, 
      data: $('form').serialize(), // &nd someone knows how I can get the serialize() of the form I just clicked? 
      success: function (data) { 
       alert('done'); 
      }, 
      error: function (data) { 
       alert('error (check console log)'); 
       console.log(data); 
      } 
     }); 
     //this._submit(); 
     return false; 
    } 

(가) 모든 곳에서 사용되는 전송 방식이 일치하지 않습니다 : 제출 덮어 쓰기 기능을위한

내 생각이있다. 원래 코드의 가능성 :

<button onclick="form.submit"> 
onclick="calltoFunction();" // where inside the function the submit is called 
<button type="submit" // the normal way 

이전에 js-function을 덮어 썼기 때문에 제 생각에 가능합니다. 그러나 제출 부분을 어떻게 처리해야합니까? 모든 제안, 아이디어, 수정 사항을 환영합니다!

+0

아약스 기능에는 ** type ** attr이 없습니다! – Jai

+0

나는 ajaxsetup에서 그렇게한다. 언급하지 않아서 미안해. 또한 그 attr을 함수에 넣는 것으로 시도했지만 결과는 없습니다. – user1469734

답변

2

바인딩과 같이 당신의 버튼에 이벤트 :

$('#yourForm').beforeSubmit(function() 
{ 
    return doWhateverYouLikeAndReturnTrueToContinueFormSubmition($(this)); 
}); 

이 다른 양식 제출 코드 앞에 doWhateverYouLikeAndReturnTrueToContinueFormSubmition 를 실행합니다 :

$('#my_button').click(
    function(event){ 
     event.preventDefault(); //This will prevent the buttons default submit behavior 
     ...//The rest is up to you! 
} 
); 
+0

jquery가 주어진 코드가 아니 었습니다 – Jasper

+1

코드 샘플에 있습니다. – Hippocrates

+0

나쁘다. 나는 태그와 관련이 있고 태그를 보았지만 거기에서 그것을 보지 못했던 부분을 보았다. – Jasper

0
function submit(form) { 
    $.ajax({ 
     url: $(form).attr('action'), 
     data: $(form).serialize(), 
     success: function (data) { 
      alert('done'); 
     }, 
     error: function (data) { 
      alert('error (check console log)'); 
      console.log(data); 
     } 
    }); 
    return false; 
} 

<form id="my-form" action="/my-action-file.php" method="post" onsubmit="return submit('#my-form');"> 
    <!-- my form content --> 
</form> 
+0

실제로이 작업을 수행하는 것은 간단하지만이 경우에는 옵션이 아닙니다. startpost를 참조하십시오. 그러나 노력에 감사드립니다. – user1469734

0

난 당신이 유용 할 것이다 의심

+0

이전에이 기능을 보지 못했습니다. 하지만 내가 원하는 것은 Ajax로 데이터를 보내는 것이다. 이전의 경우에는 제출할 수 없습니다.이 경우 제출하십시오. 그 기능을 수행 한 후에도 양식을 제출해야합니다. – user1469734

+0

'doWhateverYouLikeAndReturnTrueToContinueFormSubmition()'에서 AJAX 호출을하지 못하게하는 것을 보지 못했습니다. –

+0

원래 제출 기능을 덮어 쓰려고합니다. 그래서 ID를 사용하지 않고. 애플리케이션에는 수많은 양식이 있고 Ajax로 제출하려면 빠른 해결 방법이 필요합니다. 아니면 내가 틀렸어? – user1469734

0

시도해보십시오.

function submit(event) { 
    var target = event ? event.target : this; 
    $.ajax({ 
     url: target.action, 
     type: "POST", 
     data: $('form').serialize(), // &nd someone knows how I can get the serialize() of the form I just clicked? 
     success: function (data) { 
      alert('done'); 
     }, 
     error: function (data) { 
      alert('error (check console log)'); 
      console.log(data); 
     } 
    }); 
    //this._submit(); 
    return false; 
    } 
+0

Ajaxsetup에서 이미 Post 유형을 정의했습니다. – user1469734

관련 문제