Javascript <;输入类型=";文件"/&燃气轮机;单击“取消”时更改属性

Javascript <;输入类型=";文件"/&燃气轮机;单击“取消”时更改属性,javascript,jquery,html,Javascript,Jquery,Html,我有 函数是这样的 function filename() { var input = document.getElementById("file"); if (filename == null) { document.getElementById("filename").innerHTML = ""; return false; } var lastIndex = filename.lastIndexOf("\\"); if (lastIndex >= 0) { f

我有

函数是这样的

function filename() {
var input = document.getElementById("file");
if (filename == null) {
   document.getElementById("filename").innerHTML = "";
   return false;
}

var lastIndex = filename.lastIndexOf("\\");
if (lastIndex >= 0) {
   filename = filename.substring(lastIndex + 1);
}
document.getElementById("filename").innerHTML = "The filename is: "+filename+".";
}
我的代码与上面的代码类似,工作正常,但当单击“选择文件”,然后选择一个文件时,会显示文件名。之后,如果单击“选择文件”,然后单击“取消”。现在该文件不再加载,但表示文件名的文本仍然存在。是否有一个代码我可以使用,将自动监听文件字段的所有时间,当文件值为空时,它会改变文件名

我想使用JavaScript或jQuery来实现这一点

编辑

$("document").ready(function(){
    $("#file").change(function() {
         alert('changed');
    });
});

这将检测选定的新图像,并在退出“文件选择”窗口(按“取消”时)时检测文件名属性。已更改为“”,这正是我想要的。

我不完全确定您所说的“加载”或“文本”是什么意思。加载是否表示:显示在输入框中?文本的意思是:filename div中的文本吗

仅当输入框更改时,文件名div中的文本才会更改。单击“取消”不会更改输入框

如果在点击cancel之后,输入框中的文件消失了,那么应该发生这种情况

另外:您正在将函数文件名与null进行比较。
您可能需要使用input.value

我想在您单击“取消”后,文件名仍然是以前的值,没有更改…请检查我的编辑。它可以工作。可能它被更改为“”,而不是null。您的代码正在等待null。已尝试这两种方法。两者都不起作用。问题是,当用户按cancel时,onchange方法被取消。它只是在等待选择一个图像。我的意思是,当选择一个文件时,文件名字段将更新为名称。但是当点击cancel时,它不会删除filename字段的内容,因为onchange字段不会随着cancel事件更新。我编辑了这个问题,找到了解决办法。