2011-03-02 34 views
37

我有一个表单上传文件并在页面上定位一个iframe。当用户点击提交时,我想让文件内容“清除”出来。有没有“提交后”jquery选项?

我想这

$('#imageaddform').submit(function(){ 
    $('#imagefile').val(''); 
}); 

但它清除表单之前提交,所以没有什么是永远上传。

提交后如何清除?

+1

不使这一答案,因为它是一个猜测:'$( 'iframe')。load(function(){$('#imagefile')。val('');});' – Quentin 2011-03-02 15:14:26

+0

我没有使用jQuery表单回传。但是,在点击按钮之后,在读取它之后,但在下一页加载之前,您是正确的。它的目标是一个iframe,不会重新加载浏览器窗口。 – polyhedron 2011-03-02 15:17:11

+0

+1 @大卫,因为它的工作 – polyhedron 2011-03-02 15:19:12

回答

32

如果你没有其他的处理程序的约束,你可以做这样的事情:

$('#imageaddform').submit(function(e) { 
    e.preventDefault(); // don't submit multiple times 
    this.submit(); // use the native submit method of the form element 
    $('#imagefile').val(''); // blank the input 
}); 
+0

+1,这是一个好主意。 – 2011-03-02 15:25:23

+0

不提交表单替换页面? – 2011-03-02 15:34:29

+4

@Sime如果它有一个指向iframe的“target”属性... – lonesomeday 2011-03-02 15:41:04

4

你可以做这样的事情:

$('#imageaddform').submit(function(){ 
    setTimeout(function() { 
    $('#imagefile').val(''); 
    },100); 
}); 
+0

你测试过了吗? – amosrivera 2011-03-02 15:18:40

+0

这是工作 – 2012-08-24 07:41:47

+0

慢速计算机需要更多的发送请求与您的代码取决于现代PC的使用,这是不标准或不实用。有时它起作用,有时不起作用。 – 2015-12-20 20:01:58

2

如何ü提交表单?如果这是正常的形式后,然后页不会存在,在那种情况下,我想知道如果你正在寻找在页面刷新之前清除表单,以便当用户回来时,他没有看到填充的值。

如果表格由AJAX提交,那么你可以

function(){ 
$('form1')[0].submit(); 
clearForm(); 
} 

我错过了这个问题吗?

+0

页面不刷新。它的目标是一个iframe – polyhedron 2011-03-02 15:24:41

+0

从来没有想过会出现这种情况。你可以使用上面发布的定时器方法。或者我可以告诉一个解决方法。使用一个隐藏的变量,并在那里放置你的细节并提交该字段。同时清除主要表格。所以这会使表格清除。只是一个解决方法,但肮脏的解决方案 – 2011-03-02 15:28:01

+0

David在问题的评论中发布了一个解决方案。到目前为止,这是最适合我的解决方案。 – polyhedron 2011-03-02 15:31:01

22

Lonesomeday的解决方案为我工作,但谷歌浏览器,我发现它仍然会提交空表单数据,除非我加了这样的超时:

$('#imageaddform').submit(function(e) { 
    e.preventDefault(); // don't submit multiple times 
    this.submit(); // use the native submit method of the form element 

    setTimeout(function(){ // Delay for Chrome 
     $('#imagefile').val(''); // blank the input 
    }, 100); 
}); 
+2

Gondrup ...非常感谢你为Chrome发布这个解决方案......我想我一直在想,直到找到你的解决方案。 Chrome在提交之前清除了表单。 – flinx777 2012-01-25 22:05:06

+0

刚刚经过测试,Chrome不再需要这种破解。随着推送更新,我不确定向后兼容性对于Chrome来说有多重要。 – MCB 2016-11-27 06:00:54

+0

这取决于我认为的预期可靠性..更好地使用这个破解比为一些用户打破重要功能 – 2016-12-17 01:25:32