I am getting an error when the function below posts the form (from the second time, the first time it is blocked). When I click the submit button after this, the form submits without problem. The error is TypeError: e[h] is not a function. I already have changed the id of the submit button to something else than “submit”.
The 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;
}
});
});
The 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>
Does anyone have an idea to fix this??
I found the solution to my problem. When I searched for the answer I first encountered a solution which stated that it was a problem with the id of the form. I changed that by changing the id to something else:
But that still didn’t work. In the end it was because the name attribute was ‘submit’ also. The one problem is, that this attribute can not be changed like the id.
In the end I just made a small wrapper for the comment_form function, buffered the output and did a string replace:
This fixed my problem.