Я хочу вызвать событие изменения раскрывающегося списка в $ (document) .ready с помощью jquery.
У меня есть каскадный раскрывающийся список для страны и штата на странице сведений о пользователе. как я могу установить значение (которое берется из БД на основе идентификатора пользователя) для страны и штата в MVC с C #.
jquery
asp.net-mvc
triggers
Прасад
источник
источник
Ответы:
Я не знаю столько JQuery, но слышал, что он позволяет запускать собственные события с этим синтаксисом.
$(document).ready(function(){ $('#countrylist').change(function(e){ // Your event handler }); // And now fire change event when the DOM is ready $('#countrylist').trigger('change'); });
Вы должны объявить обработчик события изменения перед вызовом trigger () или change (), иначе он не будет запущен. Спасибо за упоминание @LenielMacaferi.
Больше информации здесь .
источник
trigger()
или даже так,change()
как правильно показано в этом ответе, то есть, если код обработчика событий появляется под вызовом, ничего не происходит! :)Попробуй это:
$(document).ready(function(event) { $('#countrylist').change(function(e){ // put code here }).change(); });
Определите событие изменения и немедленно активируйте его. Это гарантирует, что обработчик событий определен перед его вызовом.
Возможно, будет поздно ответить на исходный постер, но кто-то другой может извлечь выгоду из сокращенной записи, и это следует за цепочкой jQuery и т. Д.
цепочка jquery
источник
Попробуй это:
$('#id').change();
Работает для меня.
В одной строке вместе с установкой значения:
$('#id').val(16).change();
источник
Если вы пытаетесь связать раскрывающиеся списки, лучший способ сделать это - иметь сценарий, который возвращает предварительно созданное поле выбора и вызов AJAX, который его запрашивает.
Вот документация по методу JQuery Ajax, если он вам нужен.
$(document).ready(function(){ $('#countrylist').change(function(e){ $this = $(e.target); $.ajax({ type: "POST", url: "scriptname.asp", // Don't know asp/asp.net at all so you will have to do this bit data: { country: $this.val() }, success:function(data){ $('#stateBoxHook').html(data); } }); }); });
Затем выделите поле выбора состояния с идентификатором «stateBoxHook».
источник
в качестве альтернативы вы можете поместить атрибут onchange в сам выпадающий список, чтобы onchange вызывал определенную функцию jquery, подобную этой.
<input type="dropdownlist" onchange="jqueryFunc()"> <script type="text/javascript"> $(function(){ jqueryFunc(){ //something goes here } }); </script>
Надеюсь, это поможет вам, и обратите внимание, что этот код - это всего лишь черновик, не проверенный ни на одном ide. Благодарность
источник
По какой-то причине другие
jQuery
решения, представленные здесь, работали при запуске скрипта с консоли, однако у меня это не сработало при запуске из Chrome Bookmarklets .К счастью, это решение Vanilla JS (
triggerChangeEvent
функция) сработало:/** * Trigger a `change` event on given drop down option element. * WARNING: only works if not already selected. * @see /programming/902212/trigger-change-event-of-dropdown/58579258#58579258 */ function triggerChangeEvent(option) { // set selected property option.selected = true; // raise event on parent <select> element if ("createEvent" in document) { var evt = document.createEvent("HTMLEvents"); evt.initEvent("change", false, true); option.parentNode.dispatchEvent(evt); } else { option.parentNode.fireEvent("onchange"); } } // ################################################ // Setup our test case // ################################################ (function setup() { const sel = document.querySelector('#fruit'); sel.onchange = () => { document.querySelector('#result').textContent = sel.value; }; })(); function runTest() { const sel = document.querySelector('#selector').value; const optionEl = document.querySelector(sel); triggerChangeEvent(optionEl); }
<select id="fruit"> <option value="">(select a fruit)</option> <option value="apple">Apple</option> <option value="banana">Banana</option> <option value="pineapple">Pineapple</option> </select> <p> You have selected: <b id="result"></b> </p> <p> <input id="selector" placeholder="selector" value="option[value='banana']"> <button onclick="runTest()">Trigger select!</button> </p>
источник