मेरे पास एएसपी ड्रॉप डाउन सूची के साथ एक सी # वेब उपयोगकर्ता नियंत्रण है। मैं वेबसाइट के यूआरएल के आधार पर चयनित मान सेट करने के लिए jQuery या समान का उपयोग करना चाहता हूं।

<asp:DropDownList ID="LangSelect" runat="server" AutoPostBack="True" OnSelectedIndexChanged="LangSelect_SelectedIndexChanged" >
    <asp:ListItem Text="English" Value="English"> English</asp:ListItem>
    <asp:ListItem Text="Français" Value="Français"></asp:ListItem>
    <asp:ListItem Text="Español" Value="Español"></asp:ListItem>
    <asp:ListItem Text="Deutsch" Value="Deutsch"></asp:ListItem>
</asp:DropDownList>

मैंने यह कोशिश की है:

<script>
    if (window.location.href.indexOf('de') > 0) {
        $("#LangSelect").val('Deutsch');
    }
</script>

हालांकि, यह एक त्रुटि दे रहा है:

ध्यान में न आया लेखन त्रुटि: नल की संपत्ति 'वैल' पढ़ा नहीं जा सकता

0
Ross 4 मई 2018, 21:23

3 जवाब

सबसे बढ़िया उत्तर

यह सुनिश्चित करने के लिए तैयार दस्तावेज़ का उपयोग करें कि आपका DOM लोड है, और LangSelect.ClientID का उपयोग करके HTML मार्कअप के लिए LangSelect आईडी प्राप्त करें जो ASP.NET द्वारा उत्पन्न होता है।

$(document).ready(function () {
    if (window.location.href.indexOf('de') > 0) {
        $('#<%= LangSelect.ClientID %>').val('Deutsch');
    }
});
1
ElasticCode 5 मई 2018, 00:52

समस्या आपके चयनकर्ता की है, सबसे पहले, यह इंगित करने के लिए कि यह एक आईडी है, आप शुरुआत में # खो रहे हैं, लेकिन फिर भी, आपका तत्व runat="server" सेट है जो HTML तत्व की वास्तविक आईडी को बदल देगा जब पृष्ठ प्रस्तुत किया जाता है।

इसके लिए आप या तो ClientIDMode="Static" वह तत्व जोड़ सकते हैं जो आईडी को लॉक कर देगा, या अपने चयनकर्ता को $([id$=LangSelect]) में बदल सकता है, मैं ClientIDMode का उपयोग करना पसंद करता हूं।

0
egvaldes 4 मई 2018, 21:36

$(दस्तावेज़).रेडी (फ़ंक्शन () { अगर (विंडो.लोकेशन.href.indexOf('de') > 0) { $('<%=LangSelect.ClientID%>').find('option[value= 'Deutsch']').prop ('चयनित', सत्य);

}

});

0
Naveed 19 मई 2018, 08:53