2011-08-31 78 views
2

我有一個html表單,我通過ajaxForm({...})調用變成了ajaxForm。其中一個元素是fileInputElement。另外,我集成了一個MultiSelector(MultiSelector Source)。當輸入元素髮生變化時,我會進行一些驗證,以確保用戶選擇了與網頁上標記的內容相匹配的文件。我遇到的問題是,如果用戶選擇了一個錯誤的文件,我返回false,但是文件輸入元素仍然指向用戶選擇的'壞'文件。我想要阻止這個或者在返回false之後清除它。有任何想法嗎?AjaxForm清除文件輸入元素

僅供參考,由於安全原因,僅允許更改文件輸入元素的值。我嘗試了將innerHTML設置爲自身的'innerHTML'技巧,但這也不起作用。

回答

4

快速JS的解決方案 - 只需更換它,用一個新的(不理想,但應工作):

HTML:

<div id="some_file_field_wrapper"> 
    <input type="file" /> 
</div> 

的JavaScript:

類似的規定

var file_html = '<input type="file" />'; 
var elem_id = 'some_file_field_wrapper'; 
document.getElementById(elem_id).innerHTML = file_html; 
+0

我意識到這一點後,我張貼,這是可能是最好的一段路要走。這是我或多或少最終使用的解決方案。由於使用Multifile,我最終基本上在要刪除的文件之前添加了一個新的文件輸入,然後刪除了要從parentNode中刪除的文件。 – Joseph