【问题标题】:jquery detect input file type return emptyjquery检测输入文件类型返回空
【发布时间】:2014-07-01 16:59:49
【问题描述】:

我的网站的墙贴脚本上有一个输入类型文件。我试图在打开和关闭表单框且未选择文件时隐藏输入字段。

$(".file-upload").show().click();

我尝试使用 jquery 更改事件,但是只有在选择文件时才会触发,并且我希望能够检测到空返回

$(".file-upload").show().click().change(function(){
    // this is only triggered when a file is here
    $(this).hide();
});

更新:

$(".file-upload").show().click();
$(".file-upload").change(function(){
    $(this).hide(); // only if .file-upload is empty
});

我希望在用户单击文件输入时触发此功能,并且当对话框打开并且他们没有选择任何内容时,我想再次隐藏文件输入框。

http://jsfiddle.net/7Ra8a/1/

【问题讨论】:

  • 这个问题没有答案!我明确表示我正在尝试检测和清空文件返回、更改甚至实时更改都没有检测到它
  • 答案是重复的,所以有更多答案
  • 它不是重复的,我正在寻找不同的东西:S 并且没有任何答案或问题有帮助,我都试过了。
  • 你必须更清楚地描述你想要完成的事情。你在这里链接方法的方式没有多大意义,所以我认为你最好描述你的目标而不是尝试编码。

标签: jquery forms file-io jquery-file-upload jqueryform


【解决方案1】:

好的,您添加的 Fiddle 大大澄清了您的问题。

本质上,您正在寻找的是在文件输入对话框关闭时运行的回调函数。不幸的是,没有文件上传 API 的标准浏览器实现可以帮助您。但是,基于这个特定的用例,我认为有一种解决方法。

文件上传输入上的change 事件仅在值实际更改时才会运行,而不是在每次打开和关闭对话框时运行。因此,在您现在拥有的代码中,change 事件永远不会触发,因为输入的值实际上从未改变,它只是保持为空。因此,如果您将代码从按钮的click 处理程序中显示输入,并移到文件输入的change 处理程序中,您就可以实现您正在寻找的功能。

$('button').click(function () {
    $(".file-upload").click();
});

// if the dialog returns a file, then show the file input field
$(".file-upload").on('change', function (e) {
    if (e.target.files.length) {
        $(this).show();
    } else {
        $(this).hide();
    }
});

真的,那里的else 块应该没有必要,但我想理论上有人可以添加一个文件然后删除它(我不知道这是否是大多数浏览器支持的功能) ,而这里的 else 块涵盖了这种情况。

【讨论】:

    【解决方案2】:
     $(".file-upload").click(function (e) {
            e.preventDefault();
            $(this).fadeOut(800, function () {
                $(this).show().fadeIn();
            });
        });
    
    $(".file-upload").on('change', function () {
        $(this).hide(); // only if .file-upload is empty
    });
    

    试试这个! ;)

    【讨论】:

    • 这不是我想要的。我清楚地写在我添加的jsfiddle中
    • 对不起,您是否尝试在单击后输入为空时隐藏输入?
    猜你喜欢
    • 2010-12-21
    • 1970-01-01
    • 2019-08-08
    • 2020-04-19
    • 2020-01-25
    • 2011-02-20
    • 1970-01-01
    • 2019-07-24
    • 1970-01-01
    相关资源
    最近更新 更多