Обрабатывать события Textbox и radiobutton одновременно в jQuery - PullRequest
0 голосов
/ 18 июня 2019

У меня немного сложный вопрос, у меня есть текстовое поле на моей веб-странице, когда я вхожу в него и выхожу из него, я применяю событие размытия, которое выполняется. И он отправляет значение Textbox, используя Ajax, а затем содержимое обновляется.

следующий код.

 $("input[type=text]").blur(function (e) {

            var valList = [];

            if ($(this).val() != oldVal) {
                var path = $(this).attr("data-path");
                $(".loading").show();
                $.ajax({
                    type: "POST",
                    url: "@Url.Action("LoadSubControls", "Home")",
                    data: { Name: path, Products: valList },
                    success: function (response) {
                        $("#divEnquiry").empty().html(response);
                        $(".loading").hide();
                    }
                });
            }
        });

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

И следующий код переключателя.

$("input[type=radio]").change(function (e) {
            var path = $(this).attr("data-path");
            $(".loading").show();
            $.ajax({
                type: "POST",
                url: "@Url.Action("LoadSubControls", "Home")",
                data: { Name: path, Products: valList },
                success: function (response) {
                    $("#divEnquiry").empty().html(response);
                    $(".loading").hide();
                }
            });
        });

Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 18 июня 2019

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

Минимальный пример:

<textarea id="text"></textarea>
<input type="radio" id="radio">

$('#text').on('blur', function(){
  console.log('blur');
});

$('#radio').on('change', function(){
  console.log('change');
});

JSFiddle

0 голосов
/ 18 июня 2019

Внутри вашего blur метода просто нажмите на radio как:

$("input[type=radio]").trigger('click');

Вы считаете, что пользователь щелкает по радио, а не где-либо, но чтобы предотвратить последующее, вам следует проверить, является ли radio значением checked, прежде чем инициировать событие щелчка.

...