2013-03-30 2 views
0

사용자가 첫 번째 드롭 다운 (dropdown1)에서 무언가를 선택하여 드롭 다운 (dropdown2)을 채 웁니다. Dropdown1은 파트너 목록을 포함하고 dropdown2는 파트너에 속한 사람들의 목록을 채 웁니다. 이 아래에있는 내 jQuery 코드 (작동)입니다 :jquery를 통해 작성된 드롭 다운 ajax : 양식 제출 후 사용자 선택 유지 방법

사용자가 양식을 제출하지만, 거기에 어떤 오류가 어디했다 dropdown2가 다시 채워되지만 사용자가 만든 수있는 옵션이 손실 그러나 경우
$("select[name='dropdown1']").change(function() { 
$.ajax({ 
    type: "POST", 
    url: "ajax/getPeoplebyPartner", 
    data: "partnerId="+$("select[name='dropdown1']").val(), 
    dataType: 'json', 
    success: function(data){ 
     $("select[name='dropdown2']").empty(); 
     $("select[name='dropdown2']").append($("<option />").val("").text("select the person").attr('selected','selected').attr('disabled','disabled').attr('style','display:none;')); 
     $.each(data, function() { //Filling each option 
      $("select[name='dropdown2']").append($("<option />").val(this.id).text(this.name)); 
     }); 
    } 
}); 
}); 
$("select[name='dropdown1']").change(); 

. 나는 그것을 고치고 싶다.

나는 가장 좋은 방법은이 부분을 수정하는 것입니다 생각 : 속으로 $("select[name='dropdown2']").append($("<option />").val(this.id).text(this.name));

: if(this.id == WHAT THE USER HAD SELECTED BEFORE THE FORM WAS SUBMITTED) $("select[name='dropdown2']").append($("<option />").val(this.id).text(this.name).attr('selected','selected')); else $("select[name='dropdown2']").append($("<option />").val(this.id).text(this.name));

어떻게 사용자가 양식을 제출하기 전에 선택했던 것을 찾을 수 있습니까?

미리 감사드립니다.

+1

HTML은 상태가 저장되지 않으므로 쿠키 또는 로컬 스토리지가 필요하거나 양식을 아약스로 제출하고 서버 사이드를 확인하고 결과를 반환하십시오! – adeneo

+0

또는 제출 된 값을 자바 스크립트로 다시 보냅니다. –

+0

@adeneo'http'가 무국적이라는 것을 의미하지 않습니다. – Musa

답변

0

당신은 두 가지 옵션이 있습니다 : 사용자가 양식 제출

  1. - 당신이 필요가 POST 헤더의 내용을 분석하는 서버 측을 사용하여 - 또는 양식 사용 GET, 당신이 필요로하는 경우
  2. '제출'작업없이 양식을 확인하는 것이 아니라 Ajax 호출을 사용하여 양식의 유효성을 검사 할 수 있습니다 (자바 스크립트를 사용하여 수행 할 수있는 무언가입니다). 이 Ajax 호출은 사용자가 수행 한 오류를 기반으로 오류 코드를 반환 할 수 있으며 그에 따라 사용자 인터페이스 을 업데이트 할 수 있습니다.

두 번째 옵션을 권장합니다. 여기에 좋은 예가 있습니다 : http://jqueryfordesigners.com/using-ajax-to-validate-forms/

+0

어쨌든 서버 측 유효성 검사 논리를 복제하지 않고 클라이언트 측 유효성 검사를 추가하려고했기 때문에 두 번째 옵션을 정말 좋아합니다. 아약스를 통해 같은 논리를 호출하면 모든 새를 한 돌로 죽일 수 있습니다. – Anak