2010-08-10 3 views
2

나는 드롭 다운 목록을 가지고 있습니다. 또한 모든 연락처 (primary_contact, sales_contact, insurance_contact)의 드롭 다운 목록을 가지고 있는데 이들은 모두 "contact"클래스에 속합니다. 회사가 변경되면 다음 코드를 사용하여 사용 가능한 연락처 목록을 업데이트합니다.드롭 다운 옵션을 업데이트하지만 선택 유지

$('#company').change(function() { 
     var company = $(this)[0].value.toString(); 
     $.getJSON('<%= ResolveUrl("~/Subcontracts/CompanyContacts/") %>' + company, null, function (data) { 
      $('.contact').empty().append("<option value=''>**Select Contact**</option>"); 
      $.each(data, function (index, optionData) { 
       $('.contact').append("<option value='" + optionData.contact_id + "'>" + optionData.contact_name + "</option>"); 

      }); 
     }); 
    }); 

일부 연락처는 여러 자회사에 유효합니다. 이전에 선택한 연락처가 새 연락처 목록에 표시되면 해당 연락처를 계속 선택하고 싶습니다. 따라서 이전에 선택한 sales_contact가 목록에 있으면 선택하십시오. primary_contact 및 insurance_contact와 동일합니다. 어떻게해야합니까?

답변

2

이 몰라,하지만 난이 수행하여 일을 가지고 :

$('#company').change(function() { 
      var company = $(this)[0].value.toString(); 
      var primary_contact = $('#primary_contact').val(); 
      var safety_contact = $('#safety_contact').val(); 
      var insurance_contact = $('#insurance_contact').val(); 
      $.getJSON('<%= ResolveUrl("~/Subcontracts/CompanyContacts/") %>' + company, null, function (data) { 
       $('.contact').empty().append("<option value=''>**Select Contact**</option>"); 
       $.each(data, function (index, optionData) { 
        $('.contact').append("<option value='" + optionData.contact_id + "'>" + optionData.contact_name + "</option>"); 
       }); 
       $('#primary_contact').val(primary_contact); 
       $('#safety_contact').val(safety_contact); 
       $('#insurance_contact').val(insurance_contact); 
      }); 
     }); 
0

이 시도 보내기이 "최고"방법 인 경우

$('#company').change(function() { 
    var company = $(this)[0].value.toString(); 

    for (var i=0; i<this.options.length; i++){ 
     if (this.options[i].selected==true){ 
      var contact = this.options[i].value.toString(); 
      break; 
     } 
    } 



     $.getJSON('<%= ResolveUrl("~/Subcontracts/CompanyContacts/") %>' + company, null, function (data) { 
      $('.contact').empty().append("<option value=''>**Select Contact**</option>"); 
      $.each(data, function (index, optionData) { 
     if (optionData.contact_id == contact) 
        $('.contact').append("<option value='" + optionData.contact_id + " selected='selected''>" + optionData.contact_name + "</option>"); 
     else 
       $('.contact').append("<option value='" + optionData.contact_id + "'>" + optionData.contact_name + "</option>"); 
      }); 
     }); 
    }); 
관련 문제