原文地址

http://clpliuping.diandian.com/post/2012-09-17/40039911290

有过尝试的人都知道,对于input:file的样式难看的处理方法,一般都是透明化input,实际点击的还是input:file,使用js操纵?   $("#File").click()?这该是大家都会想到的方法,可是,很不好意思,无法起到作用,经过一番查阅,终于找到js操作呢input:file的方法,很简单

function clp(){
   return  $("#File").click();
}
<button class = "clp" onclick = "clp();">clp</button>
<input type="file" id="File" />


  只需添加一个return就可以解决这个问题了!

  以后,就可以肆意地使用漂亮的图案来替换input:file的位置,而不必使用样式来透明做所谓的假象了!


另外关于 input file的onchange只触发一次的解决方法:使用live绑定change事件即可

$("#inputFile").live("change", function () {
            var v = $(this).val();
            $("#lbl").text(v);
        });