2011-09-27 33 views
0

如何在表单提交后调用(触发)链接?我希望函数调用一个链接,以便在按钮提交上传后自动调用新的jQuery div。该infoUp()函数不工作..提交后调用(触发)链接

HTML:

<a href="#" id="profile">Profile</a> 

<form name="updatePicForm" action="page1.php" method="post" enctype="multipart/form-data"> 
<span style="font-size:12px">&nbsp;Picture upload size 1 MB&nbsp;</span> 
<input type="file" name="uploadPic" class="forms" id="picForm"/> 
<input type="submit" name="submitPic" value="Go" id="submitPic" onClick="infoUp();"/> 
<!--<span class="style3">&nbsp;2 MB max&nbsp;</span>--> 
<input type="hidden" name="MAX_FILE_SIZE" value="1048576" /> 
</form> 

//jQuery: 

function infoUp() { 
$(document).ready(function() { 
$("#profile").trigger('click'); 
}); 
+1

我不明白“,让新的jQuery div被自己调用“。 –

+1

*表单提交后,您无法在页面*上运行代码。提交表单需要将数据发送到服务器并获取响应,之后您的JS逻辑不再相关。 – mellamokb

+0

@Richard我的意思是一个链接的“ID”...该链接调用打开/执行另一个jQuery代码的div ... –

回答

3

如果你做一个常规表单提交,那么该文件将与表单提交的结果所替代,所以没有进一步的JavaScript将执行。您需要做的是使用“AJAX”技术发送帖子请求,而无需替换当前页面。

这是一个很大的重新设计,因为您需要更改您要发布的URL的PHP​​处理程序,以便它只处理帖子并更改客户端代码,以便通过JavaScript更新,而不是通过替换文档。

+0

这就是我的想法 - 在这种情况下,您可以通过Ajax来完成... –

2

您需要使用Ajax同时处理服务器(提交)和客户端(infoUp)操作。其他客户行为将失效。

1

你可以这样做:

// when the form is submitted 
$('form').submit(function(){ 

    // run your infoUp function 
    infoUp() 

    // sends the form info off 
    return true 

}) 

但是,这不会帮助不大,因为提交表单会送你到另一个网页。

你或许应该通过AJAX提交表单是这样的:

// when the form is submitted 
$('form').submit(function(){ 

    // sends the form info off 
    // callback function executes after form data is sent 
    $.post('page1.php',$('form').serialize(),function(){ 

     // run your infoUp function 
     infoUp() 

    }) 

    // prevent form from submitting normal request 
    return false 

}) 

这段代码是所有未测试,但应该给予足够的洞察如何去了解它