2011-09-27 40 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 

}) 

這段代碼是所有未測試,但應該給予足夠的洞察如何去了解它