我正在MVC中建立一個頁面,有一個下載按鈕和一個上傳按鈕。當用戶點擊上傳時,我使用JQuery UI對話框來顯示一個彈出窗口來顯示警告消息。當點擊這個彈出框中的「確定」按鈕時,我使用Jquery提交表單。這在Firefox中正常工作,但表單不會在IE中提交。IEquery UI對話窗體提交錯誤在IE
視圖
<form id="form1" enctype="multipart/form-data" method="post">
<div style="clear:both; margin-top:10px">
<fieldset>
<legend>Legend</legend>
<div style="float:right">
<input type="file" name="file" id="file" style="display:none" onchange="SetFakeText();"/>
<input id="txtFakeText" readonly="readonly" onclick="HandleFileButtonClick();" style="width:280px"/>
<input type="button" id="cmdFakeButton" value="Browse" onclick="HandleFileButtonClick();"/>
<input type="button" id="ReUploadButton" value="Upload"/>
</div>
<input type="submit" name="submitButton" value="Download" />
</fieldset>
</div>
<div id="dialog">
<label style="font-weight:bolder; color:red;">Warning!</label>
<br />
<label>Uploading will overwrite old data</label>
<br />
<img id="loading" src="<%= ResolveUrl("~/Images/LoadingSpinner.gif")%>" alt="" style="display:none; margin-left:120px;"/>
</div>
</form>
腳本
<script type="text/javascript">
function HandleFileButtonClick() {
document.getElementById('file').click();
};
function SetFakeText() {
document.getElementById('txtFakeText').value = document.getElementById('file').value;
};
$('#ReUploadButton').click(function() {
$('#dialog').dialog('open');
});
$(function(){
$('#dialog').dialog({
autoOpen: false,
width: 300,
position: 'center',
title: 'Uploading',
modal: true,
buttons: {
'Ok':
function() {
document.getElementById('loading').style.display = 'block';
$('#form1').submit();
},
'Cancel':
function() {
$(this).dialog("close");
}
}
});
});
</script>
我看了四周,共同修復沒有工作。有沒有人有任何提示?
編輯:
另外,如果我點擊對話框3倍的「確定」按鈕,它觸發控制器動作,但在文件中沒有通過。
解決
使得 '真實' 輸入可見後。使用真實的輸入瀏覽按鈕將允許表單提交。但使用假的瀏覽按鈕,其中調用: -
function HandleFileButtonClick() {
document.getElementById('csvFile').click();
};
導致此問題。我將使用不同的方法來設置我的輸入字段的樣式。
任何調試信息?在IE中調用函數?加載div是否出現? – Dave
對話框彈出正常,並出現加載div。我的控制器操作有一個斷點,但代碼沒有達到它。 – Joe
什麼是$(「#form1」)。size()在IE中? – Dave