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

@ 리차드 나는 링크의 'id'를 의미했습니다 ... 링크는 다른 jQuery 코드를 열고 실행하는 div를 호출합니다 ... –

답변

3

는 다음 문서 양식 게시물의 결과로 대체, 그래서 더 이상 자바 스크립트됩니다 실행됩니다. 당신이해야 할 일은 "AJAX"기법을 사용하여 현재 페이지를 대체하지 않고 게시물 요청을 보내는 것입니다.

게시하는 URL의 PHP 처리기를 변경해야만 게시물을 처리하고 클라이언트 측 코드를 변경하여 문서를 대체하는 대신 JavaScript를 통해 업데이트되도록하기 때문에 상당히 큰 재 설계입니다 .

+0

이것이 내가 생각한 것입니다.이 경우 아약스에서 할 수 있습니다 ... –

2

서버 (제출)와 클라이언트 (infoUp) 조치를 동시에 처리하려면 Ajax를 사용해야합니다. Else 클라이언트 조치가 유효하지 않게됩니다.

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

    // run your infoUp function 
    infoUp() 

    // sends the form info off 
    return true 

}) 

을하지만 양식을 제출하면 다른 페이지로 보내 때문에이 훨씬 도움이되지 것입니다 :

1

당신은 할 수 있습니다.

// 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 

}) 

이 코드는 모든 테스트되지 않은,하지만