2017-09-05 39 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」)'選擇沒有找到名單,是你的目標是ASP控件的'ID'而不是它的'ClientId'。嘗試在''上放置'ClientIdMode =「static」',或者執行'$(「#<%= ddlLanguages.ClientId%>」)。find(...)'。 – Santi

+0

在這兩種情況下都不會發生任何變化 – jon

+0

您能否請瀏覽器將HTML從該代碼中複製出來? – robert

回答

1

下拉式不會真正加載任何內容,因此沒有onload事件觸發。

如果你想運行在第一個頁面加載的功能,極大地激發更改事件手動

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

它會解決負載的問題,但不是當它發生變化時 – robert

+1

@robert - 在問題中它說*「...關於改變事件工作良好」*,所以我猜測那部分工作? – adeneo

+0

我錯過了那部分 – robert

相關問題