2017-09-05 1 views
0

언어를 저장하는 dropdown 목록이 있습니다 (fr, es, en ...). 나는 플래그image을 가졌습니다.이 플래그는 선택 옵션에 따라 소스를 취합니다. 변경 이벤트에 내가 놓친 게 무엇 첫 번째로드jQuery로드 선택 옵션이 실행되지 않음

<asp:DropDownList ID="ddlLanguages" runat="server" AutoPostBack="false" > 
    <asp:ListItem Text="Ita" Value="it-IT" /> 
    <asp:ListItem Text="Eng" Value="en-us" /> 
    <asp:ListItem Text="Esp" Value="es-AR" /> 
</asp:DropDownList> 

JavaScript

$(document).ready(function() { 
    $("#ddlLanguages").on('load change', function() { 

    var select = $("#ddlLanguages").find(":selected").text(); 
    var pathItalia = "../....jpg"; 
    var pathInghilterra = "../....jpg"; 
    var pathSpagna = "../.....jpg"; 

    switch (select) { 
     case "Ita": 
     $("#flagImg").attr("src", pathItalia); 
     break; 
     case "Eng": 
     $("#flagImg").attr("src", pathInghilterra); 
     break; 
     case "Esp": 
     $("#flagImg").attr("src", pathSpagna); 
     break;   
    } 
    });  
}); 

에서뿐만 아니라 작동?

+0

나는 당신의'$ ("#의 ddlLanguages")는'선택이되고, 목록을 찾지 못하는 것을 상상 것 당신이 그것의'ClientId'보다는 ASP 컨트롤의'ID'를 목표로 삼고 있다는 것입니다. ''에'ClientIdMode = "static"을 넣거나'$ ("# <% = ddlLanguages.ClientId %>"). find (...)'를 해보십시오. – Santi

+0

두 경우 모두 아무런 변화 없음 – jon

+0

브라우저로 이동하여 해당 코드에서 HTML을 복사 할 수 있습니까? – robert

답변

1

드롭 다운을 실행해도 실제로 아무 것도로드되지 않으므로 onload 이벤트가 발생하지 않습니다.

당신이 먼저 pageload의 기능을 실행할 변경 이벤트가 발생하면 수동으로

$("#ddlLanguages").on('change', function() { 
    // your code here 
}).trigger('change'); // fire on load 
+0

그것은 부하의 문제를 해결할 수 있지만 변경 될 때 아닙니다. – robert

+1

@robert - "... 변화 이벤트가 잘 작동합니다"*라는 질문에서 그 부분이 작동한다고 추측합니까? – adeneo

+0

나는 그 부분을 놓쳤다 – robert

관련 문제