【问题标题】:jQuery script doesn't work in WordpressjQuery 脚本在 Wordpress 中不起作用
【发布时间】:2016-04-19 19:59:23
【问题描述】:

我知道这个问题已经被问过很多次了,但我就是无法让 jQuery 在 Wordpress 中工作。

我有一个要与一些 wp_ajax 一起使用的表单,但在我到达这一点之前,我想确保它可以与 jQuery 交互。

表单 HTML 放置在页面上,如下所示:

<div id = "content">
   <form action= "" method= "post" id= "hfwpform">
      <label for= "fname">First Name</label></br>    
      <input type= "text" name= "fname" id= "fname" required></br>
      <label for= "email">Email Address</label></br>   
      <input type= "email" name= "email" id= "email" required></br>
      <label for= "message">Your Message</label></br>    
      <textarea name= "message" id= "message"></textarea>
      <input type= "hidden" name= "action" value= "contact_form">
      <input type= "submit" value= "Send">
   </form>
   </br></br>
   <div id= "feedback">My Feedback</div>
   </br></br>
</div>

我创建了一个用于我的主要 php 的插件。 在这个插件中,我创建了入队行。

add_action( 'wp_enqueue_scripts', 'load_scripts');

function load_scripts() {

    if ( !is_admin() ) {

        wp_register_script('hftest', get_template_directory_uri() . '/js/hf_test.js', array('jquery'), '1.0', false );
        wp_enqueue_script('hftest');
    }
}

我为我的脚本创建了一个名为“js”的子文件夹,当我提交表单时应该执行的脚本如下所示。

(function($) {
   $(document).ready(function() {
      $('#hfwpform').submit(function() {
         $response = "This is it!!!";
         alert("Submitted");
         $("#feedback").text($response);
      });
   });
 })( jQuery );

当我提交表单时,页面会重新加载,清除输入字段,而不是更改反馈文本并显示警告框。

我做错了什么???

问候 弗莱明

【问题讨论】:

  • 您是否检查过该脚本是否被调用?您的开发控制台中有任何错误吗?此外,您将文档就绪函数放在速记文档就绪函数中,并且开头缺少 $
  • 速记 document-ready 函数将 $ 从 wordpress 中解放出来,没有它你可以使用 jQuery 前缀。

标签: jquery wordpress


【解决方案1】:

您的表单运行正常。您缺少的是在您的 js 中指定表单不通过默认功能执行。

您的代码应如下所示:

(function($) {
   $(document).ready(function() {
      $('#hfwpform').submit(function(e) {
         e.preventDefault(); //this is key
         $response = "This is it!!!";
         alert("Submitted");
         $("#feedback").text($response);
      });
   });
 })( jQuery );

【讨论】:

  • 你的男人。这解决了重新加载的问题。我实际上还有另一个问题,找不到 js 文件夹的路径。 Wordpress 使用主题路径而不是插件路径作为起点。所以我不得不像这样更改 somthng 的路径:../../../plugins/my-plugin/js/hf_test.js
  • 您是否偶然知道如何以更好的方式解决此问题。
  • 太棒了!很高兴你得到它。您可以使用 $_SERVER["DOCUMENT_ROOT"] 。 “/等等”。或者也许结帐codex.wordpress.org/Function_Reference/get_home_path
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多