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