Intereting Posts
Даты meta_query из массива Как я могу показывать сообщения WordPress на основе автора? Могу ли я использовать WP для создания многосайтового импорта сообщений из 3 старых веб-сайтов WP? В то время как в «цикле», обнаружите, что сообщение является последним Как просмотреть зарегистрированные syles и скрипты для очереди Как получить старые сообщения вместо недавнего с WP_Query? Как связать сообщения со страницами Неизвестные символы добавлены к значениям метаданных Любой способ определить WP_UPLOADS_URL (например, WP_CONTENT_URL)? Показывать список категорий, даже если у них нет сообщений Отображать только прошедшие события на этой странице с помощью видоискателя Grid Bulider Использование памяти при запросе пользователей Как получить родительскую тему из детской темы? Multisite + wp_mail – маршрут через сайт условно Получать сообщения за последние 24 часа и сортировать их через GD Star Rating

Виджет Admin – форма Отправить мероприятие?

Я создаю виджет и не могу понять, как получить событие прямо перед тем, как человек нажимает «Сохранить» или нажимает кнопку ввода на панели администратора виджета. Каким будет код javascript для отправки события в форме админов виджета?

Пример: введите описание изображения здесь

Благодаря!

Вам нужно прослушать событие click (нет такой вещи, как pre / before click) и выполнить некоторую работу сразу или выяснить, хотите ли вы разрешить click «пройти» или нет на основе некоторой проверки, например ,

 jQuery(function($) { // We are binding to the body so that the code // will work for future elements added to the DOM $('body').on('click', '.widget-control-save', function(ev) { var my_validation = true; if ( my_validation ) { console.log('widget save!'); } else { ev.preventDefault(); ev.stopPropagation(); /* We are capturing the event so it won't bubble up. */ } }) }); 

См. Страницу WordPress Codex на API виджета и используйте функцию update() в объявлении класса виджета, как используется здесь, и добавьте вызов сценария в соответствующем месте:

 /** * Processing widget options on save * * @param array $new_instance The new options * @param array $old_instance The previous options */ public function update( $new_instance, $old_instance ) { // processes widget options to be saved ?> <script type="javascript"> /*Your function here*/ </script> <?php // be sure to include normal save functions as defined by Codex / source code } 

1) Если вы хотите выполнить определенную операцию в качестве первого действия после нажатия кнопки сохранения, вы бы достигли этого с помощью сценария на стороне сервера (здесь PHP), подключившись к некоторым действиям, но поскольку вы четко указываете, что хотите клиентскую сторону только действие, я думаю, что нет простого способа контролировать порядок даже как click . Однако можно сделать следующее:

Если вам нужно выполнить несколько операций JavaScript, вы можете соответствующим образом поместить свои функции в порядок. например, при щелчке, func1() должен выполнить сначала, а затем func2() , поэтому просто вызовите их в этом порядке.

2) Если вам нужно выполнить только одну операцию JavaScript, она будет выполнена в любом случае, а затем будет отправлен код на стороне сервера. ИЛИ если этот подход полностью не выполняет вашу функцию JS, вы можете использовать preventDefault() чтобы ваша функция JS выполнялась первой, а затем автоматически отправляла форму с использованием функции JavaScript, только например .submit() доступен в jQuery

3) Помимо этого, у меня есть еще один способ, который я не совсем уверен, но могу вам помочь. Можете ли вы использовать событие onfocus вместо этого? Это будет выполняться до щелчка и будет работать как с мышью, так и с клавиатурой. Но недостатком является то, что он всегда будет выполнять ваш скрипт независимо от того, действительно ли пользователь представил форму или нет.

4) Виджет WordPress сохраняет форму виджета с помощью ajax, поэтому вы можете проверить, есть ли доступный крючок, где вы можете вставить ваш скрипт и выполнить свой скрипт до того, как запись в форме фактически будет сделана в базе данных.