Как включить PreventDefault без отправки формы

Я использую форму с 4 разными кнопками.

Шаг 1: Введите пару полей формы

Шаг 2: Нажмите кнопку запуска кода

Шаг 3: Ajax обрабатывает значение для третьего поля формы

Шаг 4: Нажмите кнопку «Сохранить» и отправьте форму.

Проблема в том, что когда я нажимаю кнопку «Выполнить код», она отлично работает. Но потому что preventDefault нажатием второй кнопки (Сохранить) просто заполняет значение для третьего поля формы набором HTML-кода.

Вместо этого я хочу это представить.

Вот мой код

JS

$(document).ready(function() {

$("#run-code").click(function()
{
$("#ajaxform").submit(function(e)
{

$("#SimpleLoader").html("<img src='images/loading.gif'/>");
var postData = $(this).serializeArray();
var formURL = $(this).attr("action");
$.ajax(
{
url : formURL,
type: "POST",
data : postData,
success:function(data, textStatus, jqXHR)
{
$("#EmailAddress").val(data);
$("#run-code").attr('disabled','disabled');
$("#save").removeAttr('disabled');

},
error: function(jqXHR, textStatus, errorThrown)
{
$("#EmailAddress").html('<pre><code class="prettyprint">AJAX Request Failed<br/> textStatus='+textStatus+', errorThrown='+errorThrown+'</code></pre>');
}
});
e.preventDefault(); //STOP default action
e.unbind(e);

});
$("#ajaxform").submit(); //SUBMIT FORM
});
});

HTML-форма

<form name="ajaxform" id="ajaxform" action="inc/scripts/email_api.php" method="POST"  novalidate>

<tr>
<td>
<input type="text" name="fname" placeholder="First Name" id="fname" required />
</td>
<td>
<input type="text" name="lname" placeholder="Last Name" id="lname" required/>
</td>
<td>
<input type="email" name="email" value="" id="EmailAddress" placeholder="Email Address">
</td>
<td>
<button id="run-code" name="getEmail" onclick="return validateForm()" >Run Code</button>
</td>
<td>
<input type="submit" name="save" value="save" onclick='this.form.action="<?php echo $_SERVER['PHP_SELF'];?>"' id="save" disabled />
</td>
</form>

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector