【问题标题】:Ajax Iframe trigger click submitAjax Iframe 触发点击提交
【发布时间】:2014-09-29 03:10:26
【问题描述】:

你好 StackOverflow 同胞。 这次我需要在 Ajax 上帮个忙。

这是我的 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.将Ajax检查后的信息传递到邮箱并提交表单。
2.在iFrame中提交相同的邮件并提交。

提前谢谢你!

【问题讨论】:

  • 他们在同一个域中吗?
  • @Fancyoung,是的。实际上它们在同一个页面中。
  • 我认为这是一个错字,您在 html 中有一个额外的 &lt;input name="submit"
  • @Kartikeya,感谢您为我指出,错字。

标签: javascript jquery ajax iframe


【解决方案1】:

你可以使用$(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/

【讨论】:

  • 我想我在这里做错了什么。我的按钮是输入的,但它是由 ajax 调用的。当数据 === 成功时,我不能只适合这些函数吗?
  • 再次阅读您的代码,您的问题似乎不是由iframe引起的,而是递归调用submit函数。你能提供一个演示吗
  • 但是我不明白你的onclick功能。
  • 只是一个测试,把js代码放到ajax中就成功了吗?
  • 没有通过,除了触发了 frm.submit 之外什么也没发生。我附上了一个jsfiddle代码。
猜你喜欢
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-29
  • 1970-01-01
  • 2016-03-24
  • 2013-03-02
  • 1970-01-01
相关资源
最近更新 更多