2013-07-26 42 views
16

后这是我的表单代码:HTML表单重定向提交

<form enctype="multipart/form-data" name="upload-file" method="post" action="http://example.com/upload"> 
    <div class="formi"> 
     <input id="text-link-input" type="text" name="url" class="link_form" value="your link" onfocus="if(this.value==this.defaultValue) this.value='';" onblur="if(this.value=='') this.value=this.defaultValue;" /> 
     <input type="submit" value="OK" class="link_but" /> 
    </div> 
    <div class="upl" title="Upload"><img src="http://example.com/example.png" alt="" style="vertical-align:middle;"/>Upload 
     <input type="file" name="file" size="1" class="up" onchange = "document.getElementById('text-link-input').value = String(this.value).replace('C:\\fakepath\\','')"/> 
    </div> 
</form> 

现在,我想表单数据提交后,提交者重定向到我所选择的任何页面,但动作驻留在其他网站我无法编辑的地方。将数据提交给该网站后,是否可以将用户重定向到任何页面?

从一些谷歌搜索,这是我发现。将此添加到表单代码中:

onSubmit=window.location='http://google.com' 

这没有用。也许我没有正确实施它?这是我做过什么:

<form enctype="multipart/form-data" name="upload-file" method="post" onSubmit=window.location='http://google.com' action="http://example.com/upload"> 

另一个人说,加入一个隐藏字段应该工作:

<input type="hidden" name="redirect" value="http://your.host/to/file.html"> 

我应该如何落实,这是我的代码?

建议和帮助等待...

+0

当你在表单控件将处理脚本中的隐藏字段会的工作,你的情况你就不用管了,这样就不会工作 –

+0

形式第一次打击将采取行动,并在行动中,你通过http://example.com/upload和形式willl去那是去这个URL –

+0

@Vickey是的,它去了example.com/upload,但我想它将数据提交给example.com/upload,然后转到其他页面。但是,我无法编辑example.com/upload来添加重定向。任何其他方式? – user2622661

回答

33

试试用这个Javascript(jquery)code。它对外部URL的ajax请求。使用回调函数来触发任何代码:

<script type="text/javascript"> 
$(function() { 
    $('form').submit(function(){ 
    $.post('http://example.com/upload', function() { 
     window.location = 'http://google.com'; 
    }); 
    return false; 
    }); 
}); 
</script> 
+2

想知道为什么这会得到downvoted?看起来像正确的方法给我(假设OP愿意使用jQuery)可能需要一个'return:false;'在那个提交处理程序,虽然... –

+0

这是第一个解决方案+1 – Harshad

+1

如果你还想发送表单值,可以添加类似'$('#form_id')。serialize()'的东西作为第二个参数发布(在URL之后) – bsa