楼主做了两个页面,
一个是a.php<input type="button" onClick="$('#up').click();" value="上传照片">
<form action="b.php" method="post" enctype="multipart/form-data" target="uploadIframe" id="form1"  style="display:none">
<input type="file" name="up" id="up" onchange="$('#sub').click(); ">
<input type="submit" name='sub' id="sub">
</form>
<iframe name="uploadIframe" id="uploadIframe" style="display:none"></iframe>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>一个是b.php<script>alert('1')</script>
结果在IE下无法alert,在其他浏览器下都可以。
请问是什么问题导致的……非常感谢。。jqueryieinputiframebutton

解决方案 »

  1.   

    b.php改成这样的试试?
    <script>parent.alert('1')</script>
      

  2.   

    这是IE对OnChange这个方法的支持与其他浏览器不同。
    IE的OnChange,不是修改之后触发,而是控件离开焦点的时候触发。与其他浏览器的修改之后立马调用OnChange不一样。这地方IE略有坑爹。所以很多情况下避免使用OnChange
      

  3.   

    file控件因为一些安全问题,不能再做模拟触发点击了建议用CSS把file控件的透明度设为0,覆盖在上传照片要点击的按钮上,这样看起来是点击了那个按钮,其实点击的是透明度为0的file控件。
      

  4.   

    试试这样<form action="b.php" method="post" enctype="multipart/form-data" target="uploadIframe" id="form1">
        <input type="file" name="up" id="up" onchange="this.parentNode.submit()" style="border: 1px solid red;border:1px solid red;position: absolute;filter: alpha(opacity=0);opacity: 0;width: 100px">
        <input type="button" value="上传照片">
    </form>
    <iframe name="uploadIframe" id="uploadIframe" style="display:none"></iframe>