2014-09-29 83 views
0

你好夥計StackOverflow。 這次我需要對Ajax有幫助。Ajax Iframe觸發器點擊提交

這是我的Ajax代碼。

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

這是的iFrame代碼:

<div class="iFrame"><input class="text" id="iframetarget1" type="text" name="email" value="" tabindex="500" onfocus=" if (this.value == '') { this.value = ''; }" onblur="if (this.value == '') { this.value='';} " /> 
<div class="buttonContainer"> 
<input name="submit" class="submit" type="submit" value="Submit" tabindex="501" /> 

因此,這裏是我希望發生的情況是什麼,
1.通液之後的阿賈克斯檢查電子郵件,並提交表單的信息。
2.在iFrame中提交相同的電子郵件並提交。

預先感謝您!

+0

他們是在同一個域? – Fancyoung 2014-09-29 03:25:00

+0

@Fancyoung,是的。 其實他們在同一頁面。 – JayVicious 2014-09-29 03:26:45

+0

我認爲它是一個錯誤,你有一個額外的'<'與輸入名稱=「submit」'在HTML中。 – 2014-09-29 04:15:28

回答

0

U可以使用$(window.frames[0].document)獲取iframe內容,然後像平常一樣操作它。如:

$(window.frames[0].document).find('#iframetarget1').val(email); 
$(window.frames[0].document).find('.submit').trigger('click'); 

http://fiddle.jshell.net/du5sazay/1/

+0

我想我在這裏做錯了事。 我的按鈕是輸入,但它被ajax調用。 當數據===成功時,我不能適應這些函數嗎? – JayVicious 2014-09-29 04:52:24

+0

再次閱讀你的代碼,看起來你的問題不是由iframe引起的,而是遞歸地調用'submit'函數。你能否提供演示 – Fancyoung 2014-09-29 05:11:13

+0

http://jsfiddle.net/du5sazay/1/ – JayVicious 2014-09-29 06:03:29