Триггер изменения события выпадающего - PullRequest
78 голосов
/ 23 мая 2009

Я хочу вызвать событие изменения выпадающего меню в $ (document). Уже с помощью jquery.

У меня есть каскадный выпадающий список для страны и штата на странице сведений о пользователе. Как я могу установить значение (которое берется из БД на основе идентификатора пользователя) для страны и штата в MVC с C #.

Ответы [ 5 ]

170 голосов
/ 24 мая 2009

Я не знаю так много 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.

Подробнее здесь .

12 голосов
/ 30 апреля 2013

Попробуйте это:

$(document).ready(function(event) {
    $('#countrylist').change(function(e){
         // put code here
     }).change();
});

Определите событие изменения и немедленно запустите его. Это гарантирует, что обработчик события определен до его вызова.

Возможно, уже поздно ответить на оригинальный постер, но кто-то может извлечь пользу из сокращенной записи, и это следует из цепочки jQuery и т. Д.

JQuery цепочка

3 голосов
/ 18 ноября 2014

Попробуйте это:

$('#id').change();

У меня работает.

В одной строке вместе с настройкой значения: $('#id').val(16).change();

2 голосов
/ 23 мая 2009

Если вы пытаетесь связать выпадающие списки, лучший способ сделать это - иметь скрипт, который возвращает предварительно построенное поле выбора, и вызов 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"

1 голос
/ 22 января 2015

в качестве альтернативы вы можете поместить атрибут onchange в сам выпадающий список, который onchange будет вызывать определенную функцию jquery следующим образом.

<input type="dropdownlist" onchange="jqueryFunc()">

<script type="text/javascript">
$(function(){
    jqueryFunc(){
        //something goes here
    }
});
</script>

надеюсь, что это поможет вам, и, пожалуйста, обратите внимание, что этот код является всего лишь черновиком, не проверенным ни на каком идеале. спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...