图像替换输入元素

时间:2012-06-21 10:57:59

标签: jquery triggers image-upload

我想制作“图片上传器脚本”。我不想使用input元素。单击红色图像时,将出现系统窗口,您可以选择图像文件。但它在IE 9中不起作用。

jQuery代码:

// this part of code does not work in IE9
$('img').click(
    function(){
      $('#photoimg').trigger('click');
});

// this works fine
$('#photoimg').live('change', function(){
    $("#preview").html('');
    $("#preview").html('<img src="loader.gif" alt="Uploading...."/>');
    $("#imageform").ajaxForm({
      target: '#preview',
      success: function() {
          alert('IMG was loaded.');
      } 
    }).submit();
});

HTML code:

<img id="icon" src="http://ynternet.sk/test2/close_1.jpg">

<form id="imageform" method="post" action='upload_file.php'>
    <input type="file" name="photoimg" id="photoimg" />
</form>
<div id='preview'> </div>

示例:

 http://ynternet.sk/test_4/

1 个答案:

答案 0 :(得分:1)

问题是你的代码试图访问id为“myfile”的元素,但你的标记没有这样的元素。

当我更改文件输入的id以匹配代码中的内容时,IE9和Chrome都适用于我(虽然显然你可以更改JS以匹配html):

<input type="file" name="photoimg" id="myfile" />

演示:http://jsfiddle.net/ytcXF/