2016-11-30 3 views
0

에 표시하는 Ajax 요청 호출 방법.Val() 설정치 아니지만 그래서, 기능 미 JS에 문제가있는 TextBox

function editDataAddress(idPartnerAddress) { 
 
     // simplified 
 
     var url = "@Url.Action("SelectAddressToEdit", "Partners", idPartnerAddress)" 
 
     $.ajax({ 
 
      url: url, 
 
      dataType: 'json', 
 
      success: function (data) { 
 
       var adresse = data.Address; 
 
       var zip = data.Zip; 
 
       var locality = data.Locality; 
 
       var idLocalite = data.IdLocality; 
 

 
       //alert("locality : "+locality); 
 

 
       $("#ZipSwiss").empty() 
 
       $("#ZipSwiss").append($('<option></option>').val(idLocalite).html(zip)); 
 

 
       
 
       $('#PartnerAdresse_Locality').val(locality) 
 
       // This line confirm i don't have another PartnerAdresse_Locality in my page 
 
       console.log('ID Test:', $('[id=PartnerAdresse_Locality]').length, $('[id=PartnerAdresse_Locality]').get()) 
 

 
      } 
 
     }); 
 
    }
<div class="col-md-4" id="divZipSwiss"> 
 
@Html.DropDownListFor(model => model.ZipSwiss, ViewBag.localiteList as IEnumerable<SelectListItem>, "Recherche...", new {@class = "form-control", style = "width : 100%;"}) 
 
</div> 
 
    
 
<div class="col-md-5"> 
 
@Html.TextBoxFor(model => model.PartnerAdresse.Locality, new { @class = "form-control" }) 
 
</div>

이 문제를 함수를 호출하면 아약스가 모든 값을 반환하고 정확하게 첫 번째 변수 (adresse, zip, locality, idlocalite)를 넣습니다.

$('#PartnerAdresse_Locality').val(locality)을 수행하면 HTML에 값이 설정되지만 표시되지는 않습니다. : Picture of result 과 HTML : 지금은 지역이 나타납니다$("#ZipSwiss").append($('<option</option>').val(idLocalite).html(zip)); 을 언급하는 경우

표시되지

<input class="form-control" id="PartnerAdresse_Locality" name="PartnerAdresse.Locality" type="text" value="Geneva"> 

경찰청 (우편 번호)를 좋아하고, 지역의 가치가 작성되어 있지만,하지만 물론, 덧글 때문에 더 이상 NPA (우편 번호)가 아닙니다.

정말 잃어 버렸습니다. 누군가 나를 도울 수 있습니까? 내 설명에 따라

+0

추가 할 때 종료 태그> 애프터 서비스가 없습니다. 이것은 코드에서 오타입니까? 아니면 질문에만 오타입니까? – ThatChris

+0

감사합니다. 편집했습니다. 복사/붙여 넣기 오류입니다. – Darkikari

답변

0

, 내가 코멘트에 의해 해결책을 몇 가지 코드 라인 설립 : 내 ZipSwiss에 대한

을, 나는 선택 2의 DDL 유무 :

$('#ZipSwiss') 
      .select2({ 
       language: lang, 
       minimumInputLength: 2, 
       minimumResultsForSearch: Infinity, 
       closeOnSelect: true, 
       ajax: { 
        url: '@Url.Action("SearchLocalite", "Partners")', 
        dataType: 'json', 
        delay: 200, 
        data: function(params) { 
         return { 
          searchTerm: params.term 
         }; 
        }, 
        processResults: function(data) { 
         return { 
          results: $.map(data, function(item) { 
           return { 
            id: item.IdLocalite, 
            text: item.ZipCode, 
            name: item.Name 
           } 
          }) 
         } 
        }, 
        cache: true 
       }, 
       templateResult: function(item) { 
        if (item.loading) 
         return item.text; 

        return item.text + " | " + item.name; 
       }, 
       templateSelection: function (item) { 
        $("#PartnerAdresse_Locality").val(item.name); 
        return item.text; 
       }, 
       escapeMarkup: function(markup) { 
        return markup; 
       } 
      }); 

라인 : 당신이를 업데이트 할 때 $("#PartnerAdresse_Locality").val(item.name);는 항상 호출 선택. 그것은 의미합니다, 값은 null입니다.

감사합니다. ^^