Jquery AjaxForm清除文件输入元素

Jquery AjaxForm清除文件输入元素,jquery,ajax,forms,input,Jquery,Ajax,Forms,Input,我有一个html表单,我已经通过ajaxForm({…})调用将其转换为ajaxForm。其中一个元素是fileInputElement。此外,我还集成了一个MultiSelector()。当输入元素更改时,我会进行一些验证,以确保用户选择的文件与他们在网页上标记的内容匹配。我遇到的问题是,如果用户选择了一个坏文件,我返回false,但是文件输入元素仍然指向用户选择的“坏”文件。我想防止出现这种情况,或者在返回false后清除它。有什么想法吗 作为参考,出于安全原因,不允许简单地更改文件输入元素

我有一个html表单,我已经通过ajaxForm({…})调用将其转换为ajaxForm。其中一个元素是fileInputElement。此外,我还集成了一个MultiSelector()。当输入元素更改时,我会进行一些验证,以确保用户选择的文件与他们在网页上标记的内容匹配。我遇到的问题是,如果用户选择了一个坏文件,我返回false,但是文件输入元素仍然指向用户选择的“坏”文件。我想防止出现这种情况,或者在返回false后清除它。有什么想法吗


作为参考,出于安全原因,不允许简单地更改文件输入元素的值。我尝试了将innerHTML设置为自身的“innerHTML”技巧,但这也不起作用

Quick JS解决方案-只需更换一个新的解决方案(不理想,但应该可以正常工作):

大致如下:

HTML:


JavaScript:

var file_html = '<input type="file" />';
var elem_id   = 'some_file_field_wrapper';
document.getElementById( elem_id ).innerHTML = file_html;
var文件\u html='';
var elem_id='some_file_field_wrapper';
document.getElementById(elem_id).innerHTML=file_html;

以下是一篇文章,解释如何使用jquery执行相同操作:


希望这能有所帮助……

在我发布这篇文章后,我意识到这可能是最好的方式。这就是我最终或多或少使用的解决方案。由于使用了多文件,我基本上在要删除的文件之前添加了一个新的文件输入,然后从parentNode中删除了要删除的文件。我确实尝试过重置表单,但这会清除所有内容。我找到了另一个解决方案,如下所示,但这可能仍然是一个有效的选项。
var file_html = '<input type="file" />';
var elem_id   = 'some_file_field_wrapper';
document.getElementById( elem_id ).innerHTML = file_html;