2015-05-29 6 views
1

У меня есть следующий код:Как отправить форму с помощью jQuery .submit?

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
</head> 

<body> 
    <form method="post" id="theform" action="http://example.com" target="_blank"> 
     <input name="email" placeholder="email" type="text"> 
     <input id="submit" type="submit" value="submit"> 
    </form> 
    <script type="text/javascript"> 
    jQuery(function() { 
     jQuery('#submit').on('click', function(e) { 
       e.preventDefault(); 
       jQuery('#theform').attr('disabled', 'disabled'); 
       //Code here 
       jQuery('#theform').removeAttr('disabled').submit(); 
      } 
     }); 

    }); 
    </script> 
</body> 

</html> 

форма не подчиняется. Любая идея, что происходит?

Я знаю, что могу сделать ajax звонок, чтобы вручную отправить форму в URL-адрес действия, а затем использовать JavaScript для перенаправления туда, где я хочу отправить пользователя на новую вкладку; однако я не хочу этого делать, потому что popup blockers съедает перенаправление JavaScript. Следовательно, у меня есть форма target="_blank" по адресу submit, которая получает пользователя, куда я хочу отправить их ... если только код работал.

+0

Любая ошибка в консоли? – Tushar

+0

@Tushar Ошибка в консоли – user4951834

+0

Запрос Ajax на вкладке «Сеть»? – Tushar

ответ

1

удалите строку e.preventDefault(); из обработчика событий onclick.

Обновление: Извините, что я не заметил, что вы явно пытались отправить форму позже в коде. Несмотря на то, что вышеупомянутое изменение исправит это, фактическая проблема - это еще где. Не вносите никаких изменений в функцию, просто переименуйте идентификатор кнопки отправки на что-то еще и обновите привязку, и код должен работать. Рабочей скрипку: http://jsfiddle.net/epednoat/

<body> 
    <form method="post" id="theform" action="http://example.com" target="_blank"> 
     <input name="email" placeholder="email" type="text"> 
     <input id="smt" type="submit" value="submit"> 
    </form> 
    <script type="text/javascript"> 
    jQuery(function() { 
     jQuery('#smt').on('click', function(e) { 
       e.preventDefault(); 
       jQuery('#theform').attr('disabled', 'disabled'); 
       //Code here 
       jQuery('#theform').removeAttr('disabled').submit(); 
      } 
     }); 

    }); 
    </script> 
</body> 

</html> 
+0

Ты, гений, я мог тебя поцеловать. Это работает. Разум объясняет? Я думал, что хочу остановить подачу формы, следовательно, e.preventDefault(); после щелчка. – user4951834

+0

Благодарим за обновление. Теперь мой код работает безупречно - еще раз спасибо! – user4951834

0

Вы можете jQuery submit формы с ниже кодом.

$("#theform").submit(function(event) { 
    alert("Handler for .submit() called."); 
    event.preventDefault(); 
}); 

С помощью JavaScript

function submitform() 
{ 
    document.theform.submit(); 
} 
+0

Пробовал, что. Он создает цикл, когда я перехожу к .submit() позже. – user4951834

Смежные вопросы