如何模仿点击文件输入?

时间:2012-02-26 05:22:17

标签: jquery internet-explorer click file-io

HTML:

<div class="fileinputs">
    <input type="file" name="postgallery_set-0-image_0" id="id_postgallery_set-0-image_0">
    <div class="fakefile">
        <img src="/img/image_choice.png" />
    </div>
</div>

CSS:

div.fileinputs {
            position: relative;
        }

        div.fakefile {
            top: 0px;
            left: 0px;
            z-index: 1;
            cursor: pointer;
        }

        .fileinputs input {
            position: relative;
            text-align: right;
            -moz-opacity:0 ;
            filter:alpha(opacity: 0);
            opacity: 0;
            z-index: 2;
        }

和JS:

$('.fakefile').click(function() {
    $(this).parent().children('input').click();
});

这在Chrome和Firefox中运行良好 在IE8中,发生以下情况: 一切正常,但是当提交表单文件输入被清除时,表单不会发送,光标放在隐藏文件输入上,如何让它在IE中工作?

1 个答案:

答案 0 :(得分:0)

你实际上不需要JS来实现这种效果。 HTML <label>仅适用于此类事情。 e.g。

<div class="fileinputs">
  <input type="file" name="postgallery_set-0-image_0" id="id_postgallery_set-0-image_0">
  <label for="id_postgallery_set-0-image_0">
    <img src="/img/image_choice.png" />
  </label>
</div>