Intereting Posts
В шаблоне страницы отсутствуют поля или неверно, когда я обновляю шаблон Как определить, какой шаблон формы WordPress по умолчанию извлекается в моей теме Как получить другое мобильное меню, чем меню рабочего стола в 20-й детской теме Показать различные пользовательские меню на разных страницах категорий Определить тип страницы по URL-адресу (Архив, одиночный, страница, автор, …) Удалить сообщения для детей Как преобразовать пользовательскую таксономию в пользовательский тип сообщения? Перемещение из субдомена в корень Выбор нескольких пользовательских классов TinyMCE Не удается вывести число 0 в виджет создание загрузочного устройства для загрузки изображений, которое загружает изображения в виде сообщений Переименуемый админ повторно отправить имя пользователя и пароль с помощью настраиваемой кнопки мой single.php – это смешение на каком-то посту без причины Имеет ли пустой плагин какие-либо накладные расходы?

Комментарии Ajax не работают

Я последовал за учебником, чтобы «ajaxify» комментарии WordPress, где он не перезагружает страницу:

jQuery('document').ready(function ($) { $('#commentform').each(function () { var commentform = $(this); // find the comment form commentform.prepend('<div id="comment-status" ></div>'); // add info panel before the form to provide feedback or errors var statusdiv = $('#comment-status'); // define the infopanel commentform.submit(function () { //serialize and store form data in a variable var formdata = commentform.serialize(); //Add a status message statusdiv.html('<p>Processing...</p>'); //Extract action URL from commentform var formurl = commentform.attr('action'); //Post Form with data $.ajax({ type: 'post', url: formurl, data: formdata, error: function (XMLHttpRequest, textStatus, errorThrown) { statusdiv.html('<p class="ajax-error" >You might have left one of the fields blank, or be posting too quickly or your comment was too short.</p>'); }, success: function (data, textStatus) { if (data == "success") statusdiv.html('<p class="ajax-success" >Thanks for your comment. Refresh the page to see it.</p>'); else statusdiv.html('<p class="ajax-error" >Please wait a while before posting your next comment</p>'); commentform.find('textarea[name=comment]').val(''); } }); return false; }); }); }); 

.. он работает, но только для первой найденной формы. На моей домашней странице отображается несколько сообщений, каждая из которых имеет #commentform. Я пробовал. Каждый, как вы можете видеть, но, похоже, не имеет никакого эффекта.

 <div> <div class="CommentList"></div> <form action="" class="commentForm"> <textarea name="comment"></textarea> <input type="button" value="Comment" class="btnComment" /> </form> </div> <div> <div class="CommentList"></div> <form action="" class="commentForm"> <textarea name="comment"></textarea> <input type="button" value="Comment" class="btnComment" /> </form> </div> <script type="text/javascript"> $(document).ready(function () { $('.commentForm').each(function () { $(this).prepend('<div class="comment-status"></div>'); }); $('.commentForm').find('.btnComment:button:not(.Process)').live('click', function () { $(this).addClass('Process').attr('disabled', true); var commentFormObj = $(this).parents('form.commentForm'); commentFormObj.find('textarea[name=comment]').val(''); var statusDivObj = $(this).find('.comment-status'); statusDivObj.html('<p>Processing...</p>'); $.ajax({ url: commentFormObj.attr('action'), type: 'Post', dataType: 'json', data: commentFormObj.serialize(), error: function (XMLHttpRequest, textStatus, errorThrown) { statusDivObj.html('<p class="ajax-error" >You might have left one of the fields blank, or be posting too quickly or your comment was too short.</p>'); }, success: function (data, textStatus) { if (data == "success") statusDivObj.html('<p class="ajax-success" >Thanks for your comment. Refresh the page to see it.</p>'); commentFormObj.find('.btnComment:button').removeClass('.Process').attr('disabled', false); } }); }); }); </script>