未捕获的TypeError:$(...)。bootstrapValidator不是HTMLDocument

时间:2018-02-08 12:51:49

标签: jquery wordpress woocommerce

更新woocommerce后,我发现此控制台错误:

  

(index):600 Uncaught TypeError:$(...)。bootstrapValidator不是   功能       在HTMLDocument。 ((指数):600)       at i(jquery.js?ver = 1.12.4:2)       at Object.fireWith [as resolveWith](jquery.js?ver = 1.12.4:2)       在Function.ready(jquery.js?ver = 1.12.4:2)       在HTMLDocument.K(jquery.js?ver = 1.12.4:2)

这是脚本:



(function($) {
  jQuery(document).ready(function($) {
    $("#email-pdf-form").bootstrapValidator({
      message: "This value is not valid",
      feedbackIcons: {
        valid: "fa fa-check",
        invalid: "fa fa-times",
        validating: "fa fa-spin fa-spinner"
      },
      fields: {
        sender_email: {
          validators: {
            notEmpty: {
              message: "Your email is required"
            }
          }
        },
        sender_name: {
          validators: {
            notEmpty: {
              message: "Your name is required"
            }
          }
        },
        receiver_email: {
          validators: {
            notEmpty: {
              message: "Recipient email is required"
            }
          }
        },
        receiver_name: {
          validators: {
            notEmpty: {
              message: "Recipient name is required"
            }
          }
        }
      }
    });
  });
})(jQuery);




这是一个自定义图片插件,可在此处验证信息https://thesafaripartners.feedmybeta.com/tour/vfbc/

我更新了woocommerce插件后,它崩溃了我的页面。之前工作正常。我认为它必须与Jquery做点什么,但我无法弄清楚。

3 个答案:

答案 0 :(得分:0)

似乎不包括验证器脚本。您需要将wp_enqueue_script与包含其他脚本的操作一起使用。试试这段代码:

function add_validation_script() {
  wp_enqueue_script( 'bootstrapValidator',
                      plugins_url( 'assets/js/bootstrapValidator.min.js',  dirname(__FILE__) ),
                      array( 'jquery' ),
                      '0.5.0' );
  }    

add_action( 'wp_enqueue_scripts', 'add_validation_script' );

答案 1 :(得分:0)

您正在注册脚本但不是真正添加/排队。 因此,而不是wp_register_script(...)使用wp_enqueue_script(...)函数。

你会使用@ alexander-z提供的代码。 或者您可以离开寄存器,然后在寄存器之后(或在寄存器之后运行的任何其他地方)添加:

wp_enqueue_script( 'bootstrapValidator');

还要确保在注册jQuery后调用脚本的wp_enqueue_script或将jquery作为函数的参数。

答案 2 :(得分:0)

使用'wp_enqueue_script'挂钩将您的脚本文件排入后,尝试更改js文件中的以下代码。

更改

jQuery(document).ready(function(){
});

$(document).ready(function(){
});
希望这会奏效。