2016-07-01 4 views
-1

서버 측 방법이 작동하고 AJAX 함수가 data-duplicated="false"이지만 $this.submit();으로 설정되지 않습니다. 실제로 양식을 제출하려면 다시 sumbit 버튼을 눌러야합니다.AJAX 함수에서 폼을 제출하십시오.

<form data-url="/.../" data-duplicated="true" onsubmit="return checkForDuplicates(this)"> 
    <!-- Form inputs --> 
</form> 


function checkForDuplicates(e) { 
     var $this = $(e); 
     var url = $this.attr('data-url'); 

     if ($this.attr('data-duplicated') === 'true') { 

      $.ajax({ 
       url: url, 
       type: 'POST', 
       data: data, 
       success: function (result) { 
        if (result === true) { 
         $this.attr('data-duplicated', 'false'); 
         $this.submit(); 
        } else { 
         // warrning 
        } 
       } 
      }); 

      return false; 
     } 
     return true; 
    } 

내가 실제로 양식을 제출해야합니까?

+0

다음을 시도해보십시오 :'$ this [0] .submit();' –

+0

'ajax'를 사용한다면'form'을 왜 제출하고 있습니까? – Rayon

+0

@IsmailRBOUH -이 [0]. 제출은 기능이 아닙니다. – Bacchus

답변

-1

박카스, 내가 코멘트에서 설명한 바와 같이, 당신이 뭔가를 할 수 있습니다

$(document).ready(function(){ 
 
     $('#submit').on('click', function(){ 
 
     $.ajax({ 
 
       url: url, 
 
       type: 'POST', 
 
       data: data, 
 
       success: function (result) { 
 
        if(result == 'duplicate'){ 
 
        $('#form').submit(); 
 
        }else{ 
 
        //your custom message here 
 
        } 
 
       } 
 
      }); 
 
     }); 
 
});
<form id='form' action='' method='post'> 
 
    <!--your inputs here--> 
 
    <a id='submit'>Submit form</a> 
 
</form>

은 당신을 도움이되기를 바랍니다.

+0

제출하기 전에 중복 확인을해야합니다. –

+0

PHP를 사용하여 제출할 때 확인됩니다. 왜 downvote? 이것은 완벽하게 작동하는 해결책입니다. – Ionut

+0

downvote 저자가 –

0

demo link

자바 스크립트 코드

$('input[type="submit"]').click(function(e) { 
    e.preventDefault(); 
    checkForDuplicates(this); 
}) 

function checkForDuplicates(e) { 
    var _form = $(e).closest('form'); 
    var url = _form.attr('data-url'); 

    if (_form.attr('data-duplicated') === 'true') { 
    var data = {}; 
    var url = '/'; 
    $.ajax({ 
     url: url, 
     type: 'POST', 
     data: data, 
     success: function(result) { 
     if (result === true) { 
      _form.attr('data-duplicated', 'false'); 
      _form.trigger('submit'); 
     } else { 
      // warrning 
     } 
     } 
    }); 

    } 
} 

HTML 코드 :

<form data-url="/.../" data-duplicated="true"> 
    <input type="submit"> 
</form> 
+0

을 업데이트했습니다.이 코드는 현재 광산과 동일하지만 지금은 작동합니다. 두 번째로 제출 버튼을 클릭하더라도 양식이 제출되지 않습니다 (.trigger ('submit')가 작동하지 않는 것 같음). – Bacchus

+0

방아쇠가 작동해야합니다. 트리거를 _form.submit()으로 변경할 수 있지만 그와 동일한 –

+0

사람이 호출하여 왜 downvoted인지 알려주시겠습니까? –

관련 문제