Input 清除一个<;输入类型=文件>;

Input 清除一个<;输入类型=文件>;,input,hta,input-type-file,Input,Hta,Input Type File,我正在编写一个HTA,希望用户能够轻松地使用浏览器选择一个.txt文件。此.txt文件将逐行读取并读入数组。所以,我正在使用,它给了我浏览功能,并做了我需要它来 但当用户选择另一种方法(我已设置)输入数据时,我需要能够清除的文本框 我需要清除它的原因是为了防止用户错误。我目前设置为在他们使用浏览选项时清除手动输入文本框,但无法使其以其他方式工作 我尝试了以下方法(适用于常规文本框) 所有这些都不会清除文本框。出于安全原因,您无法在文件输入字段中修改所选文件 有一个解决方法可以重置它-您可以克隆文

我正在编写一个HTA,希望用户能够轻松地使用浏览器选择一个.txt文件。此.txt文件将逐行读取并读入数组。所以,我正在使用
,它给了我浏览功能,并做了我需要它来

但当用户选择另一种方法(我已设置)输入数据时,我需要能够清除
的文本框

我需要清除它的原因是为了防止用户错误。我目前设置为在他们使用浏览选项时清除手动输入文本框,但无法使其以其他方式工作

我尝试了以下方法(适用于常规文本框)


所有这些都不会清除文本框。

出于安全原因,您无法在文件输入字段中修改所选文件

有一个解决方法可以重置它-您可以克隆文件输入,并用克隆的输入替换输入。在您的情况下,根据用户的选择显示/隐藏输入可能更容易

例如,您可以有一组单选按钮供用户选择输入法,然后根据用户选择的单选按钮显示相应的字段


如果您必须重置文件输入,您可以使用jQuery的
.clone()
方法,或者手动创建一个新的dom元素,复制所有属性,在原始文件输入后插入,然后删除原始文件。

谢谢Sam Dufel。。。你给了我一个主意

创建了一个跨度,用于在加载时创建窗口

跨度代码:

窗口加载代码: BrowseFile.innerHTML=“”


然后,我将其复制到另一个子系统,该子系统在选择手动数据输入选项时运行。基本上是清除范围并重新创建输入。

您不能更改文件输入类型的值,因为这会引入安全漏洞。相反,只需将文件输入替换为新输入即可。执行以下操作,而不是
$('#file').val('')

 $('#file').replaceWith('<input name="ListFile" type="file" id="file"/>');

请注意,我使用的是委派版本,因此在新输入被替换后,事件仍将在新输入上工作。

谢谢Sam Dufel。。。你给了我一个主意。创建了一个跨度,该跨度创建了on Window_onLoad span Code:Window_onLoad Code:BrowseFile.innerHTML=“”,然后我将其复制到另一个子系统,该子系统在他们选择手动数据输入选项时运行。基本上清除范围并重新创建输入。必须为窗体调用reset()
 $('#file').replaceWith('<input name="ListFile" type="file" id="file"/>');
$(document).ready(function() {
    var empty_input = $('#file').clone();

    $('#the-form').on('change', '#file', function(el) {
        $('#the-form').submit(); // assuming the target is a hidden iframe
        $(this).replaceWith(empty_input.clone());
    });
})