Ошибка при отправке формы комментария: ошибка TypeError: e не является функцией

Я получаю сообщение об ошибке, когда функция ниже публикует форму (со второго раза, при первой блокировке). Когда я нажимаю кнопку отправки после этого, форма отправляется без проблем. Ошибка: TypeError: e [h] не является функцией. Я уже изменил идентификатор кнопки отправки на что-то еще, чем «отправить».

Javascript:

jQuery(document).ready(function() { var submit_allowed = false; jQuery("#commentform").submit(function() { var data = jQuery('#commentform').serialize() data +="&action=antispam_hook"; jQuery.post( anti_spam_ajax.ajaxurl, data, function(data){ submit_allowed = true; if (jQuery("#sg_anti_spam").length <= 0){ jQuery('#commentform').append('<input id="sg_anti_spam" type="hidden" name="sg_anti_spam" value="'+data+'" />'); } jQuery('#commentform').submit(); } ); if (!submit_allowed) { return false; } }); }); 

Html:

 <form action="http://xxxxxx/wp-comments-post.php" method="post" id="commentform"> <p class="comment-form-comment"> <label for="comment">Reactie</label> <textarea id="comment" name="comment" cols="45" rows="8" aria-required="true"></textarea> </p> <p class="form-submit"> <input name="submit" type="submit" id="submitform" value="Reactie plaatsen" /> <input type='hidden' name='comment_post_ID' value='160984' id='comment_post_ID' /> <input type='hidden' name='comment_parent' id='comment_parent' value='0' /> </p> </form> 

У кого-нибудь есть идея исправить это?

Solutions Collecting From Web of "Ошибка при отправке формы комментария: ошибка TypeError: e не является функцией"

Я нашел решение своей проблемы. Когда я искал ответ, я впервые встретил решение, в котором говорилось, что это проблема с идентификатором формы. Я изменил это, изменив идентификатор на другое:

 comment_form(array('id_submit' => 'submitform')); 

Но это все еще не сработало. В конце концов, это было потому, что атрибут name также был «submit». Одна из проблем заключается в том, что этот атрибут нельзя изменить, как идентификатор.

В конце концов я просто сделал небольшую обертку для функции comment_form, забуферировал вывод и заменил строку:

 /** * The following two functions are there to change the submit button name of the form. Otherwise jQuery dies. */ function sg_comment_form() { ob_start('sg_change_submit_name'); comment_form(sg_get_comment_args()); ob_end_flush(); } function sg_change_submit_name($buffer) { return str_replace("name=\"submit","name=\"submit_sg",$buffer); } 

Это устранило мою проблему.