В jQuery найдите параметр, который содержит определенную строку, и имитируйте событие нажатия с помощью prop (). - PullRequest
0 голосов
/ 27 июня 2019

Мой случай немного конкретен, и другие ответы пока не сработали. У меня есть страница с формой, когда эта форма заполняется и отправляется, она перенаправляет на другую страницу с определенными запросами в URL, я использую эти запросы для выбора определенных параметров на этой новой странице.

Чтобы найти правильный вариант в форме, пока работает только это:

jQuery('option:contains(' + $query + ')');

Я пытаюсь использовать prop () для изменения выбранной опции, и это работает только визуально:

jQuery('option:contains(' + $query + ')').prop('selected',true).trigger('change');

Это визуально изменит опцию выбора на правильную, но не приведет к изменению, как это делает реальный пользовательский щелчок. триггер («щелчок») тоже не работает.

Это работает при изменении формы и действует как реальный пользовательский клик:

jQuery('option:contains(' + capitalized + ')').attr('selected','selected').trigger('change');

Но только если добавить это, триггер к кнопке, которая сбрасывает форму:

jQuery('.properties__form__reset').trigger('click');

, которая вызывает эту функцию для функции сброса:

$('.properties__form__reset').on('click', function(e) {

        $('form').trigger('reset');

        $('form').each(function() {

            $(this).find(':input')[0].dispatchEvent(new Event('change'));

        });
    });

Хотя это работает, я прочитал, что лучше не использовать «attr», и это также делает кнопку сброса бессмысленной, поскольку она перестает работать должным образом, и «выбранная» опция, кажется, остается единственной выбранной опцией.

Итак, мой вопрос, как я могу сделать первый вариант с «prop» и имитировать событие реального щелчка?

...