WordPress — подтверждение отправки при модальном всплывающем окне

#php #jquery #ajax #wordpress #modal-dialog

#php #jquery #ajax #wordpress #модальный диалог

Вопрос:

Я пытаюсь заставить работать всплывающую кнопку отправки, но я не совсем нашел решение, которое ищу.

Я использую модальный плагин jquery, чтобы показать клиенту содержание их изменений, прежде чем они их отправят. Однако, когда я пытаюсь отправить, ничего не происходит. Кнопка отправки существует во всплывающем окне, тогда как кнопка .modify — это кнопка, которая открывает его. У меня нет проблем с самим всплывающим окном.

Мой консольный тест печатается, поэтому я знаю, что с моим прослушивателем событий все в порядке. Может быть, это как-то связано с event.preventDefault()?

Заранее спасибо.

Вот мой код

Серверная часть

    jQuery(".modify").click(function() {
                        event.preventDefault();
                        var submit = confirm('Are you sure?');
                        <?php
                            $post_ids = array();
                            while($author_entry_posts->have_posts()) : $author_entry_posts->the_post(); 

                        array_push($post_ids, get_the_ID());

                        endwhile;
                        ?>

                        if (submit == true) {
                            var data = {
                                'action': 'modalcall',
                                'postid': <?php echo  json_encode($post_ids)?>,
                                'userid': <?php echo get_current_user_id() ?>
                            };
                            jQuery.post(ajaxurl, data, function(response) {
                                 jQuery(response).appendTo('body').modal();

                                  //Script which handles the submit button on the modal pop-up
                                 jQuery(".modal_submit").click(function() {
                                     console.log("test");
                                    jQuery().submit();    
                                });
                            });

                        } else {
                            return false;
                        }
                    });
 

Интерфейс

   <input type="submit" name="submit" value="Submit" class="button modal_submit">
 

Ответ №1:

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

 jQuery(".modal_submit").click(function() {
   console.log("test");
   jQuery().submit(); // you are not defining which form to submit.
});
 

Вместо <input type="submit" name="submit" value="Submit" class="button modal_submit"> этого он должен находиться внутри формы, которую необходимо отправить, вызвав для нее jquery submit.

 jQuery(".modal_submit").click(function() {
   console.log("test");
   $(this).closest('form').submit(); // asking to submit the form which contains this button
});
 

Комментарии:

1. Я должен был это понять. Большое вам спасибо за вашу помощь.