在WEB上傳文件時(shí),要用到上傳框:
<input type="file" id="f" name="f">
這東東在IE(其他偶沒(méi)經(jīng)過(guò)測(cè)試)中是一個(gè)非常特殊的對(duì)象。
如果是您手動(dòng)寫(xiě)入的或其他對(duì)象經(jīng)過(guò)某些事件觸發(fā)填入的值
由于安全問(wèn)題,在進(jìn)行提交表單時(shí),往往會(huì)被清空,所以上傳失敗。
簡(jiǎn)單點(diǎn)說(shuō),除非你的鼠標(biāo)親自點(diǎn)到了上傳框f上,IE才會(huì)給你上傳文件!
哪怕你將 f 的onclick句柄賦給某個(gè)對(duì)象,如:
<input type="file" id="f" name="f">
<input onclick="f.click()" value="點(diǎn)擊">
你 “點(diǎn)擊” 后,同樣會(huì)彈出文件選擇對(duì)話框,可惜失望地:你照樣不能上傳文件!
怎么辦呢?
看下這段:
<BODY onmousemove="f.style.pixelLeft=event.x-200;f.style.pixelTop=event.y-10;">
<input type="text"><input type="button" onmousemove="">
<input type="file" id="f" name="f" style="position:absolute;">
</BODY>
隨便點(diǎn)擊鼠標(biāo),看到效果了吧?
基于上面的思路,偶們就可以把它弄到一個(gè)button下面就OK了!!
<style>
input{border:1px solid green;}
</style>
<BODY>
<BR><BR><BR>
<form method="post" action="" enctype="multipart/form-data">
<input type="text" id="txt" name="txt">
<input type="button" onmousemove="f.style.pixelLeft=event.x-60;f.style.pixelTop=this.offsetTop;" value="請(qǐng)選擇文件" size="30">
<input type="file" id="f" name="f" style="position:absolute;" size="1" onChange="txt.value=this.value"><BR>
<INPUT TYPE="submit">
</form>
</BODY>
為了達(dá)到真正模擬的效果,還得要把f給隱藏,加個(gè)不透明的alpha 濾鏡即可,再加上 hidefocus 屬性,隱藏f的虛線:
<style>
input{border:1px solid green;}
</style>
<BODY>
<BR><BR><BR>
<form method="post" action="" enctype="multipart/form-data">
<input type="text" id="txt" name="txt">
<input type="button" onmousemove="f.style.pixelLeft=event.x-60;f.style.pixelTop=this.offsetTop;" value="請(qǐng)選擇文件" size="30" onclick="f.click()">
<input type="file" id="f" onchange="txt.value=this.value" name="f" style="position:absolute;filter:alpha(opacity=0);" size="1" hidefocus><BR>
<INPUT TYPE="submit">
</form>
</BODY>
可以看下opacity=0改為稍大些的效果。
OK了,現(xiàn)在你就可以控制它們的樣式、位置了。。。