2011-10-04 143 views
0

我有這個javascript。javascript onclick不在鉻和IE8中工作,但在Firefox 7.0.1工作

<script type="text/javascript"> 
function HandleBrowseClick() 
{ 
    var fileinput = document.getElementById("userFile"); 
    fileinput.click(); 
} 
</script> 

<script type="text/javascript"> 
    function callAddUsers() { 
      //alert("callAddUsers"); 
     var fup = document.getElementById('userFile'); 
    var fileName = fup.value; 
     document.f1.action = "addUsers.action"; 
     document.f1.submit(); 
    } 
</script> 

這裏是我的HTML ..

<input type="file" class="button" id="userFile" 
      name="userFile" onChange="callAddUsers();" style="display: none"/> 

<input type="button" class="button" value="Add User" id="fakeBrowse" onclick="HandleBrowseClick();"/> 

我用這兩個步驟的調用風格,因爲我想用特定名稱爲我的文件上傳按鈕,而不是默認的一個像「選擇文件,瀏覽..等等。」

問題詳細信息。 在Firefox中,所有的東西都在起作用。調用操作並正確執行操作。

在IE中,它仍然調用callAddUsers()函數,但不調用操作。

在Chrome中,它是不工作的fileinput.click();

哪裏可能是什麼問題?

請提前致謝。

+0

將文件輸入封裝在'label'標籤中進行設計。 '因爲這似乎是你想要做的。 – c69

+0

但我想輸入文件上傳爲按鈕樣式。 – kitokid

+0

然後 - 在'

回答

0

display:none關於表單和表單輸入是一種確保他們不可提交的方式;)這是由瀏覽器出於安全原因完成的。

如果您需要隱藏您的可見輸入 - 給它opacity: 0.1width: 1px; overflow: hidden;

但關於您的具體問題,您可能只想使用label標記。它將收到的所有點擊轉移到專用input。因此,您將能夠以任何您想要的方式使您難看的文件輸入。

+0

仍然以不同的方式工作。在IE中,它顯示清楚:( – kitokid

+0

感謝那'display:none'提示。:) – kitokid

0

試試這個下面的代碼

<input id="dummyInput2" size="10" readonly><input type="file" id="userFile" name="userFile" value="" size="1" onchange="callAddUsers(this,\'dummyInput2\')" /><input type="button" class="button" value="Add User" id="fakeBrowse"/> 

function callAddUsers(obj,target) 
{ 
    document.getElementById(target).value = obj.value; 
    var fup = document.getElementById('userFile'); 
    var fileName = fup.value; 
     document.f1.action = "addUsers.action"; 
     document.f1.submit(); 

} 
#dummyInput2 
{ 
    z-index :1 
    cursor : pointer; 
} 
#userFile 
{ 
    position:absolute; 
    top:xxx;//change to what you wish 
    left:xxx;//change to what you wish 
    z-index :2; 
    opacity : 0; 
    filter : alpha(opacity=0); 
    cursor : pointer; 
} 
#fakeBrowse 
{ 
    position :absolute; 
    cursor : pointer; 
    width : 30px;//change to what you wish 
    height: 23px;//change to what you wish 
} 

希望這有助於你。

相關問題