2012-02-29 5 views
1

나는 다음과 같은 시나리오에서 jQuery를 사용하여 클래식 ASP에있어 발견되지 않는 경우는 추가, 두 번째 양식을 조회하기 [R]를 \ D는 {8}로 #searchForm 검색 버튼을 누를 :jQuery를 조회하는 1 개 형태는 아약스 게시물

:

<form id="searchForm" method="get"> 
    <input type="text" name="bannerID" class="required" id="bannerID" value=""/> 
    <input type="submit" class="button" id="searchClients" value="Continue"> 
</form> 

2) 검색 폼 결과 또는 NOTFOUND)을 반환 다른 ASP 고전 페이지 검색 기능 (AJAX POST를 호출

$('#searchForm').submit(function() { 
    /* ASSUMING THE BANNERID (STUDENT ID) MATCHES THE RIGHT FORMAT, SEARCH FOR IT */ 
    sendSearchRequest(text) 
    return false; 
}); 

3) 사용자가 페이지를 떠나 클라이언트 레코드를 편집하거나 해당 클라이언트에 대한 정보를 추가 할 수있는 옵션 (자습서)을 제시하십시오. 그렇지 않으면, 숨겨진 사용자 추가 양식을 보여

function sendSearchRequest(text) { 
/* POST THE BANNERID (USER ID) TO A PAGE TO CHECK IF IT EXISTS */ 
     var jsonToSend={ bannerid: text} ; 

      $.ajax({ 
       type: "POST", 
       url: 'staff_client_search_single_ajax.asp', 
       data: jsonToSend, 
       success: function(response) { 
       if (response=="NOTFOUND") { 
      /* COULD BE A NEW CLIENT OR A MISKEYED CLIENT ID; */ 
       $('#newClientForm').fadeIn('slow'); 
       $('#spnBannerID').text(text); 
       $('#divSearch').fadeOut('slow'); 
       } 
       else 
       { 
        $("#user-info").html(response); 
        var user_id=$('#existing-user-id').text(); 
        $('#existing-user-id').css('display','none'); 
        dialog_ShowUserFound(user_id); 
       } 
       }, 
       error:function (xhr, ajaxOptions, thrownError){ 
       alert(xhr.status); 
       alert(thrownError); 
      } 
      }); // end ajax 
     } 
}) // document ready 

4) 포스트는 내가 처음 양식을 숨기고 클라이언트 추가 두 번째를 보여 "찾을 수 없습니다"다시 온다 :

<div id="newClientForm" style="display:none;"> 
<form id="addClientForm"> 
    <label for="spnBannerID">Banner ID</label>:&nbsp;<span name="spnBannerID" id="spnBannerID" style='font-weight:bold'></span> 
    <label for="firstname">First Name</label><br/> 
    <input type="text" name="firstname" id="firstname" value=""/> 
</form> 

5) 첫 번째 양식과 두 번째 양식 모두 게시되지 않습니다. 자신의 제출 핸들러 차단 내가 AJAX 대신 호출 할 :

$('#searchForm').submit(function() { 
/* ASSUMING THE BANNERID (STUDENT ID) MATCHES THE RIGHT FORMAT, SEARCH FOR IT */ 
sendSearchRequest(text) 
return false; 
}); 

$('#addClientForm').submit(function() { 
    return false; 
}); 

6) 사용자가 클라이언트 추가 형태이고, 실현 때 문제가 오는 그는 (R의 \ d를 {8 유효한 클라이언트 ID를 제공하더라도)), 그는 올바른 것을 넣지 않았기 때문에 처음으로 돌아가 올바른 것을 입력하고 싶습니다.

그는 뒤로 누르고 AJAX 검색 POST 이후의 상태로 돌아갑니다. 초기 검색 양식이 아닙니다. URL에는 게시 된 검색 양식을 반영하는 page.asp? bannerid = R11234123이 표시됩니다.

어떻게 설정합니까? 사용자가 추가 양식에서 '뒤로'를 누르면 그는 시작으로 이동하여 방금 게시 된 검색으로 돌아 가지 않습니다.

답변

0

아마도 히스토리 플러그인을 사용하고 양식이 변경되면 상태가 변경 될 수 있습니다. 이러한 변경 사항을 청취 할 때 코드가 트리거하지 않으면 다시 버튼이 나타나고 상태를 가져 와서 적절한 내용/양식을 표시 할 수 있습니다. 표준 페이지, 내용 섹션에 대한 내부 페이지 링크가있는 스크립트 또는 "맨 위로 돌아 가기"를 고려하십시오. 이 링크 중 하나를 클릭 한 후 브라우저에서 뒤로 버튼을 클릭하면 페이지의 이전 위치로 돌아갑니다. 이는 해시 변경 이벤트 및 상태 변경 때문입니다. 히스토리 플러그인을 사용하면 이러한 이벤트/상태를 브라우저에서 쉽게 관리 할 수 ​​있습니다.

몇 볼 수 있습니다에서 :

http://benalman.com/projects/jquery-hashchange-plugin/

https://github.com/browserstate/history.js