2011-08-31 55 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