[英]IE9 file input triggering using Javascript
我在這里發布了一個帖子:
但是,我遇到了有關文件上傳的表單處理的新事件,並且很好奇是否有人遇到了此問題。
我最初的問題是我無法啟動onchange事件,並且我認為這可能與我的JavaScript有關,但我發現這與激活表單的方式有關。
我有文件輸入
<input type="file" name="abc"/>
現在我已經做了兩件事。
我已經隱藏了輸入,並創建了一個用於激活輸入的按鈕(用於更好的樣式控制)。
<button id="mybutton">click to upload a pic</button>
<input type="file" name="abc"/>
然后是JS用於兩者之間的交互:
$("#mybutton").click(function() {
$("Input[type=file]").click()
};
當然是表單的提交(我在本示例中使用父級,但是您在我的實際代碼中使用表單ID)。
$("input[type=file]").change(function() {
$(this).parent().submit();
});
當我單擊“ mybutton”時,確實發生了預期的結果,瀏覽窗口打開,並允許我從計算機中選擇文件。 同樣,當我在除IE之外的所有瀏覽器中更改文件時,也會觸發onchange事件。 現在,如果我取消隱藏表單,然后手動單擊“瀏覽”按鈕並選擇一個文件,則會觸發onchange事件。 因此,基本上,瀏覽器對待單擊實際文件按鈕的方式與執行$(“ input [type = file]”)。click()不同。
有人知道怎么修這個東西嗎?
如前所述,IE在提交包含文件輸入的表單時非常嚴格。 必須通過真正的鼠標單擊觸發文件輸入,才能提交表單。 另外,IE9和文件輸入似乎存在一個錯誤。
好消息是,有一種方法可以使用標簽繞過IE的安全限制:
如果我沒記錯的話,您將無法更改此設置,因為這是(本來是)旨在保護用戶的隱私,避免在沒有明確的用戶許可/操作的情況下上載文件。
確保您的代碼在$("document").ready(function(){... here..});
與.live("change", function(){});
連線時,似乎文件輸入 不太好用
其他樣式的東西是其他東西,但CSS並不那么復雜- 漂亮的文件上傳
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.