2015-09-25 3 views
0

Я пытаюсь отправить HTML-форму с помощью метода submit() jQuery.JQuery Отправка формы не работает

Я регистрирую submitHandler для проверки формы. Если проверка проверки не выполняется, пользователь может выбрать в диалоге, хочет ли он продолжить или отменить. Продолжая, я отменяю регистрацию моего Checkeventhandler и вызываю submit() в форме, но ничего не происходит.

Вот мое кодирование:

<form action="test.php" id="summary_01" method="post"> 

</form> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#summary_01').on('submit', function(e){ 
     var result = check(); 
     if (!result) { 
      e.preventDefault(); 
     } 
     return result; 
     }); 
    }); 

    function check() { 
     var result = false; 
     // do some Checks, setting result= true, if OK 

     if(!result) { 
      $("#dialog-message").dialog({ 
       modal: true, 
       resize : true, 
       width : 'auto', 
       buttons: { 
        Ok: function() { //Sending, despite check failed 

        $('#summary_01').unbind('submit'); //remove checkingForm Eventhandler 
        $('#summary_01').submit(); 
        $(this).dialog("close"); 
        }, 
        Cancel : function() { 
        $(this).dialog("close"); 

        } 
       } 
      }); 
     } 
     return result; 
    } 
</script> 

Я думаю, что проблема e.preventDefault(), но диалог вызов является асинхронным, и поэтому предупреждает представление до тех пор, пока пользователь не выбрал, чтобы продолжить или отменить.

Возможно, вы можете мне помочь. Заранее благодарны за Вашу помощь.

+0

вы можете попробовать это:. $ ('# Form01') представить (функция (е) { – VRK

+0

разные идентификаторы $ ('# summary_01') и $ ('# form01') – BenG

+0

Вы бы технически быть? создавая бесконечный цикл, если вы делаете свое закрытие перед вашим '$ ('# summary_01'). submit();' youre submit не проходит, потому что каждый раз, когда вы отправляете youre, запускаете ваш preventDefault. в настоящее время вы открываете второй диалог прямо перед тем, как закрыть два из них. –

ответ

1

Call native submit функция. В вашем коде у вас также есть другой идентификатор формы. Должно быть #form01.

$('#form01').off('submit'); 
$('#form01').get(0).submit(); 
+0

Привет Спасибо за ваш ответ. К сожалению, это также работает не для меня. Тогда ничего не происходит. – user1829716

+0

@ user1829716 У вас есть какой-либо 'type =" submit "ввод/кнопка в форме? – Krzysiek

+0

yes У меня есть вход для отправки с типом submit. DOo Мне нужно вызвать submit() на этой кнопке? – user1829716