使用Jquery在IE11中未提交Iframe中的表单

时间:2015-11-19 12:10:59

标签: javascript jquery html forms iframe

从下面的代码中,警告功能应该在表单提交后执行。但是它会在第一次执行,之后就会胜出。它在除IE11之外的所有浏览器中都可以正常执行。

代码:

<iframe id="iframeID">
<form id="profile">
<input type="file" id="UPLOADED_FILE" name="UPLOADED_FILE" value="" >
<input type="submit" name="save_photo" value="Save" onclick="pressUpload();">
</form>
</iframe>

function pressUpload() {
    var iframe_document = document.getElementById('iframeID').contentWindow.document;
    var form_profile = $(iframe_document).find('#profile');
    var file_input_field = $(form_profile).find('input[name=UPLOADED_FILE]');

    $(file_input_field).bind('change', function () {
        var value = $(this).val();

        if (value) {

            $(form_profile).submit();


            if (navigator.userAgent.indexOf("MSIE") > -1 && !window.opera) {
                iframe.onreadystatechange = function () {
                    if (iframe.readyState == "complete") {

                        alert("HI");
                    }
                };
            }
        }
    })
}

1 个答案:

答案 0 :(得分:1)

这是写标记的无效方式。但你不应该像iframe在你的情况下那样在iframe的开/关标签之间使用任何元素。

实际上只有在任何浏览器中不支持此元素时才会执行。 @MDN you can see the example1

SELECT id,
       state,
       population
FROM   #yourtable A
WHERE  population IN(SELECT Max(population) AS population
                     FROM   #yourtable A1
                     WHERE  A.state = A1.state
                     GROUP  BY state)