2015-06-17 8 views
0

У меня действительно странная проблема. Моя форма, основанная на JQuery, кажется, представляет собой дважды.Форма JQuery представляется дважды

Это происходит только тогда, когда я использую следующий код, чтобы представить свою форму:

<button class="btn dark"><i id="transfer-spin" class="fa fa-cog"></i> Transfer...</button> 

Когда я использую следующий, я не получить двойной представить:

<input type="submit" value="Transfer" class="btn btn-success dark" id="transfer-button"/> 

Вот код в контексте:

ФОРМА:

<form class="form-horizontal hidden" id="transfer-form" novalidate> 
    <fieldset> 
       <div class="control-group"> 
       <div>&nbsp;</div> 
       <div class="controls"> 
       <button class="btn dark"><i id="transfer-spin" class="fa fa-cog"></i> Transfer...</button> 
      </div> 
     </div> 

     </fieldset> 
    </form> 

И код JQuery:

$('#transfer-form').submit(function() 
    { 
     event.preventDefault(); 

     //run some error checks 

     if (messageArray.length !== 0) 
     { 
      //Return errors 
     } else { 
      $('#transfer-button').prop('disabled', true); 
      $('#transfer-spin').addClass('fa-spin'); 

      var url ='/api/transfer'; 

      $.ajax({ 
       //Do the ajax call... 
+0

Почему вы не называйте тип = кнопка «Отправить»? – depperm

+0

@depperm [default 'type' для кнопок _is_' submit' (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-type). Когда я впервые увидел это, я подумал, что это будет случай кнопки, которую нужно изменить, чтобы не быть 'type =" submit ", но, прочитав все это, я не уверен, что вызывает двойную отправку. –

+1

Я считаю, что разные браузеры имеют разные значения по умолчанию: «Всегда указывайте атрибут type для элемента

ответ

2

Вы должны передать event в качестве параметра в submit:

$('#transfer-form').submit(function(event) 
+1

Спасибо, это сделал трюк. – HappyCoder

1

Я считаю, вы должны указать переменную события в функции, с что вы можете предотвратить поведение по умолчанию.

$('#transfer-form').submit(function(event) 
{ 
    event.preventDefault(); 
    ... 
} 
+0

Да! Глупая ошибка, спасибо. – HappyCoder

1

Ваша функция должна представить для получения объекта события

функцию (событие) { ...

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