Skip to content Skip to sidebar Skip to footer

Jquery Onclick Function Not Defined

I have an ajax script and I am trying to post from a function. I am using a onlick href but its not coming up as undefined. This is using wordpress. I have tried to move the code a

Solution 1:

When you do javascript:submitComment() that's calling a the global function submitComment. Since the submitComment is defined in the jQuery(function($) { ... }) function, it is not a global. Therefore, window.submitComment is undefined (hence undefined is not a function).

The globals are stored in the window object.

Therefore, you can expose that submitComment as a global:

window.submitComment = function () {...}

Note that you should avoid using globals as much as possible. In this case you can do that by adding:

$("#submit").click(submitComment);
// In this case, you shouldn't declare submitComment as a global anymore

And since you are in a form, you want to stop the default browser behavior when clicking the a element, by using return false at the end of the function.

Solution 2:

Alternatively to @Ionică Bizău's solution.

You could use onclick="submitComment()" instead of href.

<a onclick="submitComment()"type="submit"id="submit" name="submit" class="btn cardh-bg text-white text-bold margin-top-5"> Submit Comment </a>

<linkhref="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"rel="stylesheet" /><scriptsrc="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><scriptsrc="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script><divid="live"><divclass="container">
    <?php the_content(); ?>
    <divid="comment-display"><formmethod="post"action="index.php"id="comments_submit"><inputtype="hidden"id="nameBox"value="<?php echo $_SESSION['name'] ?>"name="name" /><inputtype="hidden"id="emailBox"name="email"value="<?php echo $_SESSION['email']; ?>" /><textareaid="chatBox"placeholder="Ask a question or make a comment"name="comment"class="form-control"></textarea><aonclick="submitComment()"type="submit"id="submit"name="submit"class="btn cardh-bg text-white text-bold margin-top-5"> Submit Comment </a></form><br /><divid="displayComments"></div></div></div></div><scripttype="text/javascript">jQuery(function($) {
    setInterval(function() {
      $.ajax({
        method: "GET",
        url: "<?php echo get_template_directory_uri()?>/get_chat.php"
      }).done(function(html) {
        $('#displayComments').html(html);
      });
    }, 2000);

    window.submitComment = function(){
      console.log('submitComment called!');
      $.ajax({
        method: "POST",
        url: "template-live.php",
        data: {
          submitComment: $('#chatBox').val(),
          submitName: $('#nameBox').val(),
          submitEmail: $('#emailBox').val()
        }
      }).done(function(html) {
        alert('Your comment has been submitted, and will be displayed after approval.');
        $('#chatBox').val('');
      });
    }
  });
</script>

Post a Comment for "Jquery Onclick Function Not Defined"