有没有“提交后”jquery选项?
我有一个表单上传文件并在页面上定位一个iframe。当用户点击提交时,我想让文件内容“清除”出来。有没有“提交后”jquery选项?
我想这
$('#imageaddform').submit(function(){
$('#imagefile').val('');
});
但它清除表单之前提交,所以没有什么是永远上传。
提交后如何清除?
如果你没有其他的处理程序的约束,你可以做这样的事情:
$('#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
});
+1,这是一个好主意。 – 2011-03-02 15:25:23
不提交表单替换页面? – 2011-03-02 15:34:29
@Sime如果它有一个指向iframe的“target”属性... – lonesomeday 2011-03-02 15:41:04
你可以做这样的事情:
$('#imageaddform').submit(function(){
setTimeout(function() {
$('#imagefile').val('');
},100);
});
你测试过了吗? – amosrivera 2011-03-02 15:18:40
这是工作 – 2012-08-24 07:41:47
慢速计算机需要更多的发送请求与您的代码取决于现代PC的使用,这是不标准或不实用。有时它起作用,有时不起作用。 – 2015-12-20 20:01:58
如何ü提交表单?如果这是正常的形式后,然后页不会存在,在那种情况下,我想知道如果你正在寻找在页面刷新之前清除表单,以便当用户回来时,他没有看到填充的值。
如果表格由AJAX提交,那么你可以
function(){
$('form1')[0].submit();
clearForm();
}
我错过了这个问题吗?
页面不刷新。它的目标是一个iframe – polyhedron 2011-03-02 15:24:41
从来没有想过会出现这种情况。你可以使用上面发布的定时器方法。或者我可以告诉一个解决方法。使用一个隐藏的变量,并在那里放置你的细节并提交该字段。同时清除主要表格。所以这会使表格清除。只是一个解决方法,但肮脏的解决方案 – 2011-03-02 15:28:01
David在问题的评论中发布了一个解决方案。到目前为止,这是最适合我的解决方案。 – polyhedron 2011-03-02 15:31:01
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);
});
不使这一答案,因为它是一个猜测:'$( 'iframe')。load(function(){$('#imagefile')。val('');});' – Quentin 2011-03-02 15:14:26
我没有使用jQuery表单回传。但是,在点击按钮之后,在读取它之后,但在下一页加载之前,您是正确的。它的目标是一个iframe,不会重新加载浏览器窗口。 – polyhedron 2011-03-02 15:17:11
+1 @大卫,因为它的工作 – polyhedron 2011-03-02 15:19:12