Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何清除输入文件并在history.back()上输入文本值_Javascript_Jquery_Back - Fatal编程技术网

Javascript 如何清除输入文件并在history.back()上输入文本值

Javascript 如何清除输入文件并在history.back()上输入文本值,javascript,jquery,back,Javascript,Jquery,Back,有一个非常相似的问题,但我正在做一些不同的事情。在我的例子中,如果某项操作失败,则在提交表单时,我正在执行history.back()以保留表单中的所有值,但对于输入文件,文件名保留在那里,但实际上没有文件。因此,为了避免混淆并让用户知道需要再次上传文件,我只想清除该元素的值,以及另一个包含文件描述的输入文本 将autocomplete=“off”属性添加到它会起作用,因为它会阻止浏览器缓存该值,但这在Chrome中有效,但在IE11中无效 我也可以使用JQuery,比如$input_file.

有一个非常相似的问题,但我正在做一些不同的事情。在我的例子中,如果某项操作失败,则在提交表单时,我正在执行history.back()以保留表单中的所有值,但对于输入文件,文件名保留在那里,但实际上没有文件。因此,为了避免混淆并让用户知道需要再次上传文件,我只想清除该元素的值,以及另一个包含文件描述的输入文本

autocomplete=“off”
属性添加到它会起作用,因为它会阻止浏览器缓存该值,但这在
Chrome
中有效,但在
IE11
中无效

我也可以使用JQuery,比如
$input_file.val(“”).end()但由于我试图在
history.back()
之后执行此操作,因此无法确定原因

<script>
      alert("Error");
      window.history.back();
      $('input[id="Attachment"]').val('').end();
</script>

警报(“错误”);
window.history.back();
$('input[id=“Attachment”]).val('').end();

关于如何实现这一点的任何其他想法都是受欢迎的。

有一个名为pageShow的触发器,在过渡动画完成时触发

jQuery( ".selector" ).on( "pageshow", function( event ) { ... } )
在您的情况下,您需要执行以下操作

<script>
  alert("Error");
  window.history.back();
  $(window).bind("pageshow", function() {
      //debugger; you can check and see if this block of code gets triggered 
      $('input[id="Attachment"]').val('').end();
   });
</script>

警报(“错误”);
window.history.back();
$(窗口).bind(“pageshow”,函数(){
//调试器;您可以检查并查看此代码块是否被触发
$('input[id=“Attachment”]).val('').end();
});
注意:从jQuery Mobile 1.4.0开始,不推荐触发此事件。它将不再在1.6.0中触发。 pageshow的替代品是pagecontainer小部件的pagecontainershow事件。在jQuery Mobile 1.4.0中,这两个事件除了名称和pagecontainershow在pagecontainer上触发,而pageshow在pagecontainer上触发之外是相同的


可能想试试这个-@user2884707bond,它成功了!请添加一个响应,以便我可以给你的信用。