我有一个ajax脚本,我想从一个函数发布。我正在使用onlick href,但是它没有显示为undefined。这是使用WordPress的。我试图在范围内和范围外移动代码,但是我似乎仍然无法正常工作。
<div id="live"> <div class="container"> <?php the_content(); ?> <div id="comment-display"> <form method="post" action="index.php" id="comments_submit"> <input type="hidden" id="nameBox" value="<?php echo $_SESSION['name'] ?>" name="name"/> <input type="hidden" id="emailBox" name="email" value="<?php echo $_SESSION['email']; ?>"/> <textarea id="chatBox" placeholder="Ask a question or make a comment" name="comment" class="form-control"></textarea> <a href="javascript:submitComment();" type="submit" id="submit" name="submit" class="btn cardh-bg text-white text-bold margin-top-5"> Submit Comment </a> </form> <br /> <div id="displayComments"></div> </div> </div> </div> <script type="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); function submitComment(){ $.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>
谢谢 :)
当您执行javascript:submitComment()此操作时,将调用global函数submitComment。由于submitComment在jQuery(function($) { ... })函数中定义了,因此它不是全局的。因此,window.submitComment是undefined(因此undefined is not a function)。
javascript:submitComment()
submitComment
jQuery(function($) { ... })
window.submitComment
undefined
undefined is not a function
全局变量存储在window对象中。
window
因此,可以将其公开submitComment为全局变量:
window.submitComment = function () {...}
请注意,应尽可能避免使用全局变量。在这种情况下,您可以添加以下内容:
$("#submit").click(submitComment); // In this case, you shouldn't declare submitComment as a global anymore
并且由于您处于表单中,因此您希望通过单击功能末尾来停止单击a元素时的默认浏览器行为return false。
a
return false