2010-03-03 6 views
4

1.4.1로 업그레이드 할 때 다음 코드가 실패하고 1.3.2로 롤백했을 때 문제가 해결되었습니다. jQuery.val() 메서드가 선택 목록에서 값을 설정하지 못했습니다?

var ddlCountry = $("#<%= this.ddlCountry.ClientID %>"); 
    if (ddlCountry.val() == "") { 
    ddlCountry.val(address.country); 
    ddlCountry.change(); 
    } 

은 BTW 문제는 <select> 목록의 값이 설정되지 않습니다 것입니다.

예, 이것은 모든 $(document).ready :

편집에 싸서된다

  ddlCountry.find("option").each(function() { 
       if ($(this).text() == address.country) { 
        ddlCountry.val($(this).val()); 
       } 
      }); 
+0

'address.country'는 무엇입니까? –

+0

Google AJAX Search API Geolocation 기능에서 가져온 문자열 값입니다. – AndrewVos

+0

선택하려는 '값'은 무엇입니까? 선택한 항목? – Lazarus

답변

6

당신이 을 설정하는 경우,이 작동이 내가 사용하는 코드는 참고

<select id="ddlCountry"> 
    <option value="1">A</option> 
    <option value="2">B</option> 
</select> 

jQuery를 1.3에서이 작품 : $("#ddlCountry").val("A") 012, jQuery를 1.4에이 값을 텍스트가 아닌, 예를해야합니다 1.4에서 3, 그것은해야하지 않습니다 또는 $("#ddlCountry").val("1")

당신이 당신의 드롭 다운 메뉴를 변경할 수없는 경우,이 같은 텍스트 기반 검색하고 선택할 수 있습니다 참고로

ddlCountry.filter(function() { 
    return $(this).text() == address.country; 
})[0].selected = true; 

, here's the jQuery change that happened . 1.4 노트에서 :

.val ("...") 옵션이나 체크 상자에서 더 이상 모호하지 않습니다 (텍스트 값이 아닌 값으로 항상 선택 함). (커밋)

+0

실제로는 '