2016-12-24 16 views
0

Я пытаюсь использовать плагин ajaxForm для отправки формы через ajax. Проблема, с которой я сталкиваюсь, заключается в том, что мне нужно отправить форму дважды, чтобы получить форму для отправки. См. Код ниже, и я ценю любую помощь.jQuery Плагин AjaxForm должен отправить дважды

$(document).on('click', 'button.submit-btn', function() { 
    alert('Please wait...'); 
    setTimeout(function() { 
    $('button.submit-btn').attr('disabled', true); 
    }, 50) 
    $('#send-form').ajaxForm(function() { 
     var currentAlert = $.jAlert('current'); 
     currentAlert.closeAlert(); 
     successAlert('Success!', 'The form has been submitted'); 
     $('button.submit-btn').attr('disabled', false); 
    }); 
}); 

<form action="" method="post" id="send-form"> 
    <button type="submit" class="submit-btn" name="send-modal-form" value="submit"></button> 
</form> 

Я попытался изменить его на ajaxSubmit, а затем добавить e.preventDefault(); но тогда форма не подается вообще, когда я пытаюсь.

ответ

0

В коде у вас есть severals ошибка

1) кнопка отправки и попробовать Аякс

кнопки использовать тип или ссылку представить при нажатии кнопки отправить браузер пытается автоматически отправить форму и вы работаете в JS но это не мешает представить

2) использовать вместо предупреждения jAlert

предупреждение изменения в jAlert

3) этот код инициализации наблюдателя, что выполнение Аякса

$('#send-form').ajaxForm(function() { 
     var currentAlert = $.jAlert('current'); 
     currentAlert.closeAlert(); 
     successAlert('Success!', 'The form has been submitted'); 
     $('button.submit-btn').attr('disabled', false); 
    }); 

затем добавить его на клик, но вы должны добавить его в документ нагрузки так вот код

$(document).ready(function() { 

    $('#send-form').ajaxForm(function() { 
     var currentAlert = $.jAlert('current'); 
     currentAlert.closeAlert(); 
     successAlert('Success!', 'The form has been submitted'); 
     $('button.submit-btn').attr('disabled', false); 
    }); 
}); 

$(document).on('click', 'input.submit-btn', function() { 
    jAlert('Please wait...','Please wait...'); 
    setTimeout(function() { 
    $('button.submit-btn').attr('disabled', true); 
    }, 50) 
}); 

здесь является HTML

<form action="" method="post" id="send-form"> 
    <input type="button" class="submit-btn" name="send-modal-form" value="submit" /> 
</form> 
+0

Привет, я попробовал исправление и, к сожалению, для этого требуется два клика. – LearntoExcel

+0

Моя коррекция исправляет одну проблему, вторая проблема заключается в том, что вы запускаете предупреждение брандмауэра // alert ('Please wait ...'); вместо jAlert и после этого вы хотите получить его с jAlert var currentAlert = $ .jAlert ('current'); – Emiliano

+0

Привет @Emiliano предупреждение не проблема. alert - это сокращение для другого плагина, который я использую. Когда я меняю тип ввода на кнопку, форма не будет отправляться вообще. – LearntoExcel

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

  • Нет связанных вопросов^_^