javascript — iFrame передает информацию в Ajax и вызывает кнопку отправки в Ajax

У меня проблема, когда Ajax не запускает уважаемое событие.

У меня есть две формы, одна видимая, а другая скрытая.

  1. В видимой форме пользователь может ввести адрес электронной почты.
  2. Когда пользователь нажимает кнопку отправки видимой формы, отправка по умолчанию запрещается, и через Ajax проверяется электронная почта.
  3. Если адрес электронной почты недействителен, появится сообщение об ошибке.
  4. Если адрес электронной почты действителен, нажмите кнопку отправки скрытой формы с помощью JS (в функции ajax-success).

Вот еще код для справки:

HTML

Видимая форма

<form accept-charset="utf-8" id="contactForm1" style="margin-top:;" action="https://app.getresponse.com/add_contact_webform.html?u=IzDa" method="post">
<input class="wf-input wf-req wf-valid__email" type="text" name="email" data-placeholder="yes" id="email" value="Enter Your Email Here"onfocus="if (this.value == 'Enter Your Email Here') {this.value = '';}"onblur="if (this.value == '') {this.value = 'Enter Your Email Here';}"style="margin-top:0px;" />
<br />
<input type="submit" class="wf-button" name="submit1" value=" " style="display:inline !important; margin-top:-10px !important;" />
</form>

Скрытая форма

<form method="post" id="aweber" class="af-form-wrapper" action="http://www.aweber.com/scripts/addlead.pl">
<div style="display:none;">
<input type="hidden" name="meta_web_form_id" value="947846900" />
<input type="hidden" name="meta_split_id" value="" />
<input type="hidden" name="listname" value="awlist3599001" />
<input type="hidden" name="redirect" value="http://www.aweber.com/thankyou.htm?m=default" id="redirect_37ecf313df3b6f27b92c34c2c00ef203" />
<input type="hidden" name="meta_adtracking" value="ibb_test" />
<input type="hidden" name="meta_message" value="1" />
<input type="hidden" name="meta_required" value="email" />
<input type="hidden" name="meta_tooltip" value="" />
</div>

<div id="af-form-947846900" class="af-form"><div id="af-body-947846900"  class="af-body af-standards">
<div class="af-element">
<label class="previewLabel" for="awf_field-66127140">Email: </label>
<div class="af-textWrap"><input class="text" id="awf_field-66127140" type="text" name="email" value=""  />
</div><div class="af-clear"></div>
</div>
<div class="af-element buttonContainer">
<input name="submitaw" id="submitaw" class="submitaw" type="submit" value="Submit" tabindex="501" />
<div class="af-clear"></div>
</div>
</div>
</div>

<div style="display:none;"><img src="http://forms.aweber.com/form/displays.htm?id=nCzsHCxsnAwM" alt="" /></div>
</form>

JS

Аякс для видимой формы

$('#contactForm1').click(function(e) {
e.preventDefault();
var email = $('#email').val();
var self = this;

$.ajax({
type: 'POST',
dataType: 'JSON',
url: 'check.php',
data: {
email: email
},
success: function (data) {
if (data.status == 'success') {
self.submit();
} else {
alert('The e-mail address entered is not valid.');
}
}
});
});

Вот как будет выглядеть сценарий:

  1. Пользователь вводит адрес электронной почты и нажимает кнопку отправки.
  2. Ajax-call проверяет, является ли это действительным адресом электронной почты.
  3. Если адрес электронной почты действителен, функция успеха Ajax видимой формы
    • сначала устанавливает значение электронной почты скрытой формы
    • а затем запускает кнопку отправки скрытой формы

Как сказано ранее, ШАГ 3 не работает.

0

Решение

используйте полный вместо успеха

$('#contactForm1').click(function(e) {
e.preventDefault();
var email = $('#email').val();
var self = this;
$.ajax({
type: 'POST',
dataType: 'JSON',
url: 'check.php',
data: {
email: email
},
complete: function(data) {
if (data.status == 'success') {
self.submit();
} else {
alert('The e-mail address entered is not valid.');
}
}
});
});
0

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

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

По вопросам рекламы [email protected]