【问题标题】:jQuery - Reset file input on changejQuery - 在更改时重置文件输入
【发布时间】:2017-09-23 23:14:12
【问题描述】:

如果用户附加了不被接受的文件,我正在尝试清除组件。我正在尝试在连接后立即执行此操作。我在这里查看了一些示例,其中一些示例向我展示了如何使用重置按钮来重置整个表单(我不想这样做)或克隆组件(我尝试过但是它不工作)。如果有人可以帮助我,我会很高兴。提前致谢。

这是我所拥有的示例:

$("#mycomponent").on("change", function()
{
    var extension = $(this).val().split(".").pop().toString();

    if((extension === "pdf") || (extension === "docx") || (extension === "doc"))
    {
        alert("OK");    
    }
    else
    {
        alert("File extension not accepted");

        var mycomponent = $("#mycomponent");
        mycomponent.replaceWith(mycomponent = mycomponent.clone(true));
    }
});

【问题讨论】:

  • 为什么不直接做一个mycomponent.val("");

标签: jquery file input


【解决方案1】:

Working fiddle.

像下面这样使用wrap()/unwrap()函数应该可以工作:

$(this).wrap('<form>').closest('form').get(0).reset();
$(this).unwrap();

希望这会有所帮助。

$("#mycomponent").on("change", function(){
  var extension = $(this).val().split(".").pop().toString();

  if((extension === "pdf") || (extension === "docx") || (extension === "doc"))
  {
    console.log("OK");    
  }
  else
  {
    console.log("File extension not accepted");
    
    $(this).wrap('<form>').closest('form').get(0).reset();
    $(this).unwrap();
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="file" id="mycomponent" />

【讨论】:

  • 不起作用,组件仍然显示附加错误扩展名的文件名
  • 没错,我已经用工作 sn-p 更新了我的答案,请检查。
  • 你不再使用克隆,你能把那部分删掉吗(为了以后人们看到这个)
【解决方案2】:

你可以用 val() 清除组件,像这样:

$("#mycomponent").on("change", function()
{
    var extension = $(this).val().split(".").pop().toString();

    if((extension === "pdf") || (extension === "docx") || (extension === "doc"))
    {
        alert("OK");    
    }
    else
    {
        alert("File extension not accepted");

        var mycomponent = $("#mycomponent");
        mycomponent.val("");
    }
});

【讨论】:

  • Funcionou desse jeito também。瓦卢!
猜你喜欢
  • 2011-06-26
  • 2017-10-16
  • 2016-04-25
  • 1970-01-01
  • 2020-11-12
  • 2012-05-13
  • 2018-01-11
  • 2016-05-15
  • 1970-01-01
相关资源
最近更新 更多