为什么$("#file").val("")不能清除input file值呢?

.val()设置的是input的value属性,input是HTMLInputElement的实例,value是通过setter方法定义的,当被赋值时,就会把值写到input里面;而改变value属性的方法,实际上操作的是dom的value属性,会触发浏览器的repaint,更新input的值。

 

正确做法如下(兼容所有浏览器):

        var input = $(this);
        var next = this.nextSibling;
        var parent = input.parent();
        var form = $(\"<form></form>\");
        form.append(input);
        form[0].reset();
        if (next) {
            $(next).before(input);
        } else {
            parent.append(input);
        }
收藏 打印