浏览器和事件处理问题与图片上传

时间:2011-11-02 11:35:18

标签: jquery google-chrome browser

此图片上传脚本在Google Chrome中不起作用,但在Firefox和Internet Explorer中运行良好。请有人帮忙吗?                                             

$("a#picUpload").bind('click', function() {
    $(":input[type=file]").click();
});

其次,在选择一张图片并点击打开的对话框上的打开按钮后,我希望在打开对话框卸载后自动启动图片上传,但我无法弄清楚如何执行此操作。上传是ajax。有什么建议吗?感谢。

1 个答案:

答案 0 :(得分:0)

我认为第一个问题可以通过在'#'之前的'a'之后引入一个空格来解决。我假设'picUpload'是锚元素的id。在这种情况下,您根本不必使用“a”。只需使用'#picUpload'将click事件绑定到元素即可。我更喜欢第二种方法,你只使用#id来获取该元素的jQuery对象。

$("#picUpload").bind('click', function() {
    $(":input[type=file]").click();
});

我还建议您检查表单中是否有与'picUpload'元素具有相同ID的任何其他元素。在这种情况下,事情可能会出错。

要在选择文件后自动开始上传文件,请使用input:file元素的'change'事件。

$('#fileUpload').change(function() {
    alert('changed');
    //call your ajax function for uploading file
});

要使上述脚本正常工作,表单应如下所示

<form>
   <a id='picUpload' href='#'>Upload picture</a>
    <input id='fileUpload' type="file"/>
</form>

在这里小提琴:http://jsfiddle.net/deepumohanp/vvVWt/