读书人

IE下的模拟点击与onchange事件有关问题

发布时间: 2013-04-09 16:45:09 作者: rapoo

IE下的模拟点击与onchange事件问题
楼主做了两个页面,
一个是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,在其他浏览器下都可以。
请问是什么问题导致的……非常感谢。。 jquery ie input iframe button
[解决办法]
这是IE对OnChange这个方法的支持与其他浏览器不同。


IE的OnChange,不是修改之后触发,而是控件离开焦点的时候触发。

与其他浏览器的修改之后立马调用OnChange不一样。这地方IE略有坑爹。

所以很多情况下避免使用OnChange
[解决办法]
file控件因为一些安全问题,不能再做模拟触发点击了

建议用CSS把file控件的透明度设为0,覆盖在上传照片要点击的按钮上,这样看起来是点击了那个按钮,其实点击的是透明度为0的file控件。
[解决办法]
试试这样
<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>

读书人网 >JavaScript

热点推荐